いくつかのコードでこのDeployment.Current.Dispatcher.BeginInvoke(>)=> {...})形式を見たことがあります。これはバックグラウンドでいくつかの作業をしていましたが、一般的な用途は何ですか?Deployment.Current.Dispatcher.BeginInvoke(()=> {...})の使用は何ですか?
19
A
答えて
41
いいえ、それは背景スレッドで作業を行うことはありません - それはUIスレッドで仕事をするのです。 UIを操作するためには、通常、をバックグラウンドスレッドからと呼びます。これはUIスレッドでのみ実行できます。
ラムダ式の本体は、UIスレッドで実行したいコードです。
6
UIを更新するコードがUIスレッド以外のスレッドから実行されると、無効なクロススレッドアクセス例外が発生します。
ディスパッチャを使用すると、別のスレッドからUIスレッドにコードを渡すことができます。
私がこの記事に載せたプロジェクトは、これを他の概念の中でも実証しています。
WebClient, HttpWebRequest and the UI Thread on Windows Phone 7
2
Deployment.Currentを使用する必要があります。 SilverlightアプリケーションでDispatcherを使用している場合(DependencyObjectを継承しないコンテキスト内で)、UI以外のワーカースレッドで作業しているときに、UIを更新する必要があります。
関連する問題
- 1. Silverlightのthis.Dispatcher.BeginInvoke()とDeployment.Current.Dispatcher.BeginInvoke()メソッドの違い
- 2. 「=>」とは何ですか?
- 3. angularjsで "$$"の使用は何ですか?
- 4. ラムダ式で使用しない場合の=>演算子は何ですか?
- 5. liferay 6.2のLiferayの顔の<alloy>タグの使用は何ですか?
- 6. Verilogでは>>> symbolとは何ですか?
- 7. DispatchingAndroidInjector <>と他のdagger.androidクラスを使用する利点は何ですか?
- 8. <?>をJava Genericsで使用する「良い」理由は何ですか?
- 9. <required>と<rtexprvalue>は何に使用されていますか?
- 10. イザベルでは(*> *)とは何ですか?
- 11. libGLES_CM.soの使用は何ですか?
- 12. zeromqの使用例は何ですか?
- 13. 0x8915の使用は何ですか?
- 14. カスタムイベントargの使用は何ですか?
- 15. 「寛容」の使用は何ですか?
- 16. OWLの使用例は何ですか?
- 17. XPathの//と?/の違いは何ですか?の使用は何
- 18. 非等価結合を使用する有効なユースケースは何ですか? >、> =、<, <=, <>
- 19. PHPの " - >"構文の正しい用語は何ですか?
- 20. ConcurrentBag <T>の実際の用途は何ですか?
- 21. brightscriptの `<>`シンボルは何ですか?
- 22. Javascriptで>>> =演算子とは何ですか?
- 23. 違いは<?php ... ?>と<? ... ?>を使用して何
- 24. javaのoperator >>とoperator >>>の違いは何ですか?
- 25. Eclipseプロジェクト用のJavaEMFNature <nature>とは何ですか?
- 26. C#とAccess 2017を使用してコンボボックスのオートコンプリート用のコードは何ですか?
- 27. ''は<alias>とは何ですか?
- 28. <E>は、コレクション<E>の意味は何ですか?
- 29. カフカの__consumer_offsetsトピックと_schemaトピックの使用方法は何ですか?重要性と使用は何</p> <ol> <li>__consumer_offsets</li> <li>_schema</li> </ol> <p>:
- 30. SparkContextコンストラクタのappNameとは何ですか?その使用法は何ですか?
Jonさん、あなたの投稿の人気は非常に優れています。私の帽子はあなたから離れています:) –
BeginInvokeは、UIスレッド自体から、既存のUIアクションキューが空の後でUIスレッドのフォローアップアクションまで使用できることにも言及することも重要です。基本的に、UIスレッドが何もしなくなるまで作業を延期します。 – JustinAngel
@JonSkeet:バックグラウンドスレッドでコードを実行するにはどうすればいいですか?このコードはUI上にプログレスバーが表示されないようにしています。 – Rohaan