Label
を別の から更新する最も簡単な方法はどれですかThread
?
私は
Form
で を実行しておりthread1
、そこから別のスレッド (thread2
) を開始しています。がいくつかのファイルを処理している間、の作業の現在のステータスを の に
thread2
更新したいと思います。Label
Form
thread2
どうすればそれができるでしょうか?
ベストアンサー1
最も簡単な方法は、匿名メソッドを渡すことです。Label.Invoke
:
// Running on the worker thread
string newText = "abc";
form.Label.Invoke((MethodInvoker)delegate {
// Running on the UI thread
form.Label.Text = newText;
});
// Back on the worker thread
完了するまで実行をブロックすることに注意してくださいInvoke
。これは同期コードです。質問では非同期コードについては尋ねていませんが、Stack Overflow のコンテンツ非同期コードの書き方について学びたいときに役立ちます。