私はこのコードを見つけた:.netではInvoke()の使用方法は何ですか?
this.Invoke(new EventHandler(EventGetSum));
は、この書き込みと同じではありません。
EventGetSum();
これを使用することは何ですか?
私はこのコードを見つけた:.netではInvoke()の使用方法は何ですか?
this.Invoke(new EventHandler(EventGetSum));
は、この書き込みと同じではありません。
EventGetSum();
これを使用することは何ですか?
EventGetSum()
と書いた場合、すぐにと呼びます。 EventGetSumメソッドを呼び出します。
new EventHandler(EventGetSum)
と書くと、呼び出されるときにEventGetSumが(順番に)呼び出されるデリゲートが作成されます。
Control.Invoke
を呼び出すと、制御を担当するUIスレッドから特定のデリゲートが呼び出されます。これは、任意のスレッドからUI要素にアクセスしてはならないため必要です。
ウィンドウ内のthis
が属するスレッドに対してEventGetSum
メソッドを実行します。
これは、通常、クロススレッドUIコールを処理するときに使用されます。
ISynchronizeInvokeのMSDNのドキュメントを参照してください。
これは非常に悪いタイトルです。多分もっと記述的なものに変更することを検討する必要があります – grapefrukt
この質問を確認するhttp://stackoverflow.com/questions/571706/shortest-way-to-write-a-thread-safe-access -modod-to-a-windows-forms-control/571749#571749 – alex2k8