別のスレッドから要素にアクセスするにはどうすればよいですか?この場合、メインスレッド(GUI)にリッチテキストボックスがあり、セカンダリスレッドでメソッドを実行しています。私は、次のエラーが表示された二次スレッドを通じてC#他のスレッドからの要素へのアクセス
private void Log(string input, Label lbl)
{
lbl.Invoke(new Action(()=>
{
lbl.Text = "Status: " + input;
Thread.Sleep(50);
}));
}
void Run()
{
foreach (string line in richTextBox1.Lines)
{
Log(line, label1);
Thread.Sleep(500);
}
}
private void button1_Click(object sender, EventArgs e)
{
ThreadStart th = new ThreadStart(() => Run());
Thread th2 = new Thread(th);
th2.Start();
//th2.Join();
}
をricheditboxにアクセスしたい:
無効なスレッド操作:コントロールのrichTextBox1 "で、それ一つではない スレッドからアクセス作成されました。
ここを見て:https://stackoverflow.com/questions/661561/how-to-update-the-gui-from-another-thread-in-c(私は考える44)がいくつかありますのここで答えます。個人的には、TAPベースのものが好きです。 – Kevin