私の理解によれば、Dispatcher.InvokeとDispatcher.BeginInvokeはUIスレッドで実行されますが、Invokeは同期で、BeginInvokeは非同期です。このコードを使用すると問題が発生します。Dispatcher.InvokeとDispatcher.BeginInvokeのスレッド問題
EDisc.App.Current.Dispatcher.
Invoke(
DispatcherPriority.Normal, new Action(delegate
{
context = NavigationManager.CurrentPage.DataContext;
}));
コンテキストの値が返されます。ただし、以下のコードで
EDisc.App.Current.Dispatcher.
BeginInvoke(
DispatcherPriority.Normal, new Action(delegate
{
context = NavigationManager.CurrentPage.DataContext;
}));
コンテキストがnullで、私は別のスレッドがit.IがWCFサービスからこれを呼び出しています所有しているため
呼び出し元のスレッドがこのオブジェクトにアクセスすることはできません」と言ってはInvalidOperation例外を取得していますUseSynchronizationContextで実行= falseを.Can誰もが、この動作を説明する?
「EDisc.App」の種類は何ですか? – JaredPar
これはApplicaionオブジェクトのクラス名です.Application x:Class = "EDisc.App" – Rohit