2011-07-19 11 views
14

バックグラウンドでコンテンツをデータベースに挿入するページをダウンロードしようとしています。UIスレッドをバックグラウンドから通知スレッド

何らかのバックグラウンドスレッド(BackgroundWorkerまたはThreadPoolのどちらかをキューに入れることができるために優先されます)でこれを行う必要がありますが、ジョブが完了したらUIも更新する必要があります。

Windows Phoneでジョブが完了したことをUIスレッドに通知するにはどうすればよいですか?

誰かがDispatcher.beginInvokeを使用しているのを見たことがありますが、彼が使っていたもの(ワーカーまたはプール)は明確ではありませんでした。

答えて

22
Deployment.Current.Dispatcher.BeginInvoke(() => 
{ 
     // change UI here 
}); 

Dispatcherスレッドでコードを実行できます。

Deploymentクラスは、Silverlightベースのアプリケーションのアプリケーション情報を提供します。

これはあなたが使用する必要のあるコードですが、実際には、これはUIスレッド上のコードを別のスレッド(そのスレッドの実行方法と場所に関係なく)で実行できる方法です。

5

また、MVVMを使用している場合は、UIモデルからビューモデルを更新し、INotifyPropertyChangedの魔法にUIを更新させることができます。

関連する問題