[解決済み] Dispatcher.CurrentDispatcher vs. Application.Current.Dispatcher
質問
の違いは何ですか?
Dispatcher.CurrentDispatcher
は
System.Windows.Threading
) と
Application.Current.Dispatcher
は
System.Windows
)?
私の直感では
Application.Current.Dispatcher
は決して変更されず、現在のアプリケーションのすべてのスレッドに対してグローバルであるのに対して
Dispatcher.CurrentDispatcher
の新しいインスタンスが作成されるかもしれません。
Dispatcher
のインスタンスを生成するかもしれません。
というのは正しいでしょうか?
もしそうなら、その目的は
Dispatcher.CurrentDispatcher
は主にマルチスレッド UI のためですか?
どのように解決するのですか?
私の直感では、Application.Current.Dispatcher は決して変更されることはなく、現在のアプリケーションのすべてのスレッドに対してグローバルです。 で、現在のアプリケーションのすべてのスレッドに対してグローバルである一方 Dispatcher.CurrentDispatcherは、呼び出されたスレッドに応じて、新しいDispatcherのインスタンスを作成することができます。 の新しいインスタンスを作成するかもしれません。
その通りです。
さらに、アクセスすることに何の意味もありません。
Dispatcher.CurrentDispatcher
を非UIスレッドからアクセスすることに何の意味もありません。を呼び出さない限り、何もしません。
Dispatcher.Run
を呼び出さない限り何もしません。また、無限メッセージループに入ることはワーカスレッド内から行いたいことではありません。
というわけで。
-
最も一般的なシナリオでは アプリが単一の UI スレッドしか持っていない場合。
Application.Current.Dispatcher
とDispatcher.CurrentDispatcher
は同じインスタンスを返します。どちらを使うかは、単に好みの問題です。 -
もしあなたのアプリが複数のUIスレッドを持っているならば、それぞれの
DispatcherObject
は は、作成時に作成された UI スレッドのディスパッチャに恒久的に関連付けられます。この場合Application.Current.Dispatcher
はアプリケーションが生成されたスレッドのディスパッチャを参照します; 他の UI スレッドが所有するコントロールにメッセージをポストするためにそれを使用することはできません。
関連
-
[解決済み] [Solved] ファイル *.mdf をデータベースとしてアタッチできない
-
[解決済み] ポストバックまたはコールバックの引数が無効です。 イベント検証は '<pages enableEventValidation="true"/>' を使用して有効になっています。
-
[解決済み] <Database> コンテキストを支えるモデルが、データベース作成後に変更されました。
-
[解決済み] COMExceptionエラー80040154を修復する方法は?
-
[解決済み] SQL Server Compact EditionデータベースのLINQ to SQLで、"Row not found or changed "例外を解決するにはどうすればよいですか?
-
[解決済み] NetFx45WebLinkとNetFx45RedistLinkの違いは何ですか?
-
[解決済み] .NETにおけるstructとclassの違いは何ですか?
-
[解決済み] MemoryStreamから文字列を取得する方法は?
-
[解決済み] LINQクエリでToList()とToArray()のどちらを呼び出すのが良いですか?
-
[解決済み] PowerShellで文字列がNULLまたは空であるかどうかを確認するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] データテーブルの並べ替え
-
[解決済み] 16進数値0x00は無効な文字です。
-
[解決済み] AndroidでWCFサービスを利用する方法
-
[解決済み] 24:00:00 を超える値を持つ .Net Timespan を格納するための正しい SQL タイプは何ですか?
-
[解決済み] .NET Framework 4 マルチターゲティングパックがアンインストールできない
-
[解決済み] LINQ: フィルタリング基準で SingleOrDefault と FirstOrDefault() を使用する場合
-
[解決済み] 列挙型を文字列に変換する
-
[解決済み] .NETにおけるstructとclassの違いは何ですか?
-
[解決済み] .Any() vs .Count() > 0のどちらのメソッドがより良いパフォーマンスを発揮しますか?
-
[解決済み] Visual Studioのコンパイルエラー "mismatch between processor architecture "を修正するにはどうしたらいいですか?