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