答えて
指します。他のスレッドに作業項目をプッシュするには、Invoke
(同期)またはBeginInvoke
(非同期 - 理想的にはEndInvoke
を後で呼び出します)のいずれかを使用します。同様に、InvokeRequired
を使用して「これを行う必要がありますか、自分で作業を実行できますか?」と尋ねます。
このインターフェイスの最も一般的な使用方法は、Windowsフォームであり、UIスレッドに作業をプッシュする方法の一部です。もちろん、Control.Invoke
/Control.BeginInvoke
を等しく使用することもできますが、フォームコントロールはこのインターフェイスを実装して抽象化を可能にしています。したがって、下流のコードはWindowsフォームに結びつける必要はありません。フォームの場合、InvokeRequired
は「私はUIスレッドですか?」という意味です。
実際には、私はそれを直接使用するのが一般的ではないと確信しています。 UIでイベントを処理し、最も適切なローカルメカニズムを使用してUIがスレッド切り替えを処理するようにするのが一般的です。
一般的な使用方法:(インタフェースを実装)obj
によって管理スレッドにSomeMethod
(代理人を介して)実行
obj.Invoke((MethodInvoker) SomeMethod);
。
ISynchronizeInvokeインターフェイス は、イベントの発生 約オブジェクト間の同期および非同期 通信を提供します。このインターフェイスを実装するオブジェクト は、 というイベントが発生したという通知を に送信し、そのイベントに関する のクエリに応答できます。このようにして、 クライアントは、 の1つの要求が処理されてから、最初に の完了に依存する後続の要求を に送信することができます。
もこれは基本的にスレッド間で作業をプッシュする方法が記載されて
http://blogs.msdn.com/jaredpar/archive/2008/01/07/isynchronizeinvoke-now.aspx
これは、下位層ロジックのバックグラウンドスレッドを使用してメインスレッドのUIを更新するために使用できると思いますか? –
- 1. 別のインターフェイスでインターフェイスを使用する
- 2. インターフェイスビルダーを使用して長いインターフェイスを構築する方法
- 3. JavaScriptを使用してインターフェイスを実装する方法
- 4. asp.netで複数のタブ付きインターフェイスを使用する方法
- 5. Spring MVCでBindingResultインターフェイスを使用する方法は?
- 6. C#複数のインターフェイス実装を使用する方法
- 7. Telerik OpenAccessでインターフェイスを使用する方法
- 8. F#インターフェイスで属性を使用する方法は?
- 9. IParserAccessorインターフェイスをカスタムASP.NETコントロールで使用する方法
- 10. wpfでインターフェイスを使用する方法HierarchicalDataTemplate
- 11. FutureTaskを使用してRunnableインターフェイスから値を返す方法
- 12. インターフェイスを使用するときの関係を定義する方法
- 13. PHPでインターフェイスとマジックメソッドを使う方法
- 14. Microsoft VSTOインターフェイスの使用方法を教えてください。
- 15. Node.jsコールバックを使用してWebインターフェイスにデータを送信する方法
- 16. IMediaDetインターフェイスを使用せずにメディア情報を取得する方法は?
- 17. PHPでReflectionクラスを使用して拡張インターフェイスを取得する方法
- 18. 将来のインターフェイスを使用中にjava.util.concurrent.RejectedExecutionExceptionを削除する方法
- 19. NUnit DynamicMockを使用して非インターフェイスおよび非MarshalByRefをモックする方法
- 20. ウェブサイトのインターフェイスをテストする方法(ユニット)
- 21. TypeScriptインターフェイスを構成する方法
- 22. ウィンドウにインターフェイスを追加する方法
- 23. インターフェイス型メンバーをシリアル化する方法
- 24. VCLクラスでのインターフェイスの使用方法 - パート2
- 25. インターフェイス上の属性の使用方法は?
- 26. JavaライブラリプロジェクトでClojureインターフェイスを使用する
- 27. インターフェイスでDetachedCriteriaを使用するHibernate
- 28. Dartでインターフェイスを使用するタイミングは?
- 29. インターフェイスのオプションパラメータでDouble.NaNを使用する
- 30. インターフェイスでカスタムクラスを使用する(Objective C)
ありがとうmarcその素晴らしい答え.. –
私は最近非常に簡単な 'IAsyncResult'実装を伴う' ISynchronizeInvoke'の非常に簡単な実装を見ました:http://gurkashi.blogspot.com/2011/01/hi-all- in-this-post-i-will-demonst.htmlを参照してください。こんにちは、私は疑問に思っていますが、今、.Net 4.5では、コールバックでBeginInvokeの古い学校のパターンの代わりにasync/awaitを使うことができます。このインターフェースは、私の4.5ツールボックスから実装することができる* BeginInvoke'、*と書かれています。 – IAbstract