Dispatcher.BeginInvoke を使用して、UI スレッドで UI の更新が確実に行われるようにする方法を見てきました (そして読んだこともあります)。私はこの理屈を理解しています。
しかし、ビュー コード ビハインドで、TextBlock の Text プロパティなどのプロパティの割り当てが、この Dispatcher.BeginInvoke で割り当てた場合にのみ安全であると宣言される例を見てきました。
質問 ビューのコード ビハインドから何かを操作している場合、それは UI スレッドで操作されていることを意味しませんか (BackgroundWorker または非同期サービス呼び出しを使用していないと仮定します)。
上記の例では、他のスレッドや非同期操作は使用されていません。
質問 2 非同期 Web サービス ハンドラーがあり、このハンドラー内から TextBlock の文字列を更新したい場合。TB の Text プロパティを直接割り当てることはできますか、それとも Dispatcher.BeginInvoke を使用する必要がありますか。このような UI 要素の直接操作よりもデータ バインディングを優先するため、通常はこれを行わないことに注意してください。