同期実行および非同期実行:
Invoke()
との比較
BeginInvoke()
とのコアの違いは、操作の実行方法です。
Invoke()
BeginInvoke()
およびInvoke()
BeginInvoke()
および委員会インスタンスの実行に使用されます。現在のスレッドでの同時実行、およびスレッドプールのスレッドは非同期です。 Delegate.Invoke()
Delegate.BeginInvoke()
および
Delegate.Invoke()
Delegate.BeginInvoke()
およびDelegate.Invoke()
UI要素の操作を実行するために使用されます。 Delegate.BeginInvoke()
UIスレッドで同時に実行し、操作が完了するまで呼び出しスレッドをブロックします。 UIスレッドでの非同期実行により、コールスレッドがバックグラウンドで動作するときに実行を継続できるようにします。
スレッドオブジェクトと Control.Invoke()
Control.BeginInvoke()
スレッドオブジェクトを作成し、委員会で
を呼び出します。どちらの方法も非同期実行され、メインプログラムが別のスレッドでバックグラウンドで動作するときに実行を継続できるようになります。 Control.Invoke()
Control.BeginInvoke()
いつControl.Invoke()
Control.BeginInvoke()
呼び出しスレッドをブロックせずにバックグラウンド操作を実行する必要がある場合、は理想的な選択です。たとえば、フローズンアプリケーションなしでUI要素を更新したり、ユーザーエクスペリエンスに影響を与えずに時間のかかる操作を実行するために使用できます。 BeginInvoke()
以上がinvoke()vs。begininvoke():非同期実行をいつ使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。