3

非同期 C# 5 のビデオを見ています。この例では、非同期メソッドとラムダ コールバック関数を使用しています。ラムダ コールバック関数は別のスレッドで実行されるため、その中で UI を変更しようとすると例外が発生します。

これを軽減するために、彼は使用しますDispatcher.RunAsync(...)

しかし、私はこれについて混乱しています。新しい .NET 4.5 プロジェクトを作成し、Dispatcher クラスを見つけようとしましたが、どこにも見つかりません。Google はそれが System.Windows.Threading 名前空間にあると私に言いましたが、私のコンピューターにはこの dll がなく、System.Windows だけです。

また、それがどのように機能するのかよくわかりません-MSDNのドキュメントを見ると、ディスパッチャー(おそらくすべてのスレッドを処理する)がUIスレッドでどのように処理するかがわかりません-RunAsyncメソッドはスレッドを指定しませんその操作が実行されます。

ディスパッチャーは、ディスパッチャーを作成したスレッドで実行しているだけなのではないかと考えましたが、上記の問題でローカルで試すことができないため、途方に暮れています。

誰でも私を解決策に導くことができますか?

4

1 に答える 1