このコードを使用すると、データが読み込まれる前にフォームを読み込むことができますが、ボタンやdatagridview自体など、フォーム上の一部のコンポーネントは、データが読み込まれるまで「非表示」になります。
この問題を解決するにはどうすればよいですか?
private void Form1_Load(object sender, EventArgs e)
{
Thread t = new Thread(new ThreadStart(delegate()
{
this.Invoke(new MyDelegate(delegate()
{
ReadXml(path);
Bind();
}));
}));
t.Start();
}
private void Bind()
{
dataGridView1.DataSource = table;
}
私はこの他のコードも持っていますが、これはうまく機能しますが、2つの新しいスレッドを使用する必要があります。これはこれを行うための最良の方法ではありませんね。
private void Form1_Load(object sender, EventArgs e)
{
Thread t = new Thread(new ThreadStart(delegate()
{
this.Invoke(new InvokeDelegate(delegate()
{
Thread t2 = new Thread(new ThreadStart(delegate()
{
ReadXml(path);
}));
t2.Start();
t2.Join();
Bind();
}));
}));
t.Start();
}