これはコードサンプルです。ViewModel
それがaではなく、それに関連するものが何もないと想像してください。
説明:
だから私はObservableCollection
データベースから削除したいアイテムを持っています。ブロックUIを回避するために、バックグラウンドスレッドで呼び出します。
データベースに問題があるか、成功した場合は、UIに表示したいと思います。だから私はで小さなコードを呼び出しますDispacther.BeginInvoke
。
BeginInvoke
呼び出すとスレッドコンテキストがUIに変わる ことを知っています。
コードサンプル:
ThreadPool.QueueUserWorkItem(new WaitCallback((o) =>
{
Action completedAction = null;
try
{
//Delete from database;
item.Delete();
completedAction = () => { this.Observable.Remove(item); };
}
catch (Exception)
{
completedAction = () =>
{
someTextBox.Text = "Error";
};
}
App.Current.Dispatcher.BeginInvoke(completedAction);
}));
質問:
BeginInvoke
スレッドコンテキストをバックグラウンドスレッドに戻した後、それ以上コードを記述しなかったと思っても知りたいです。
PS。私は使用できることを知っていますBackgroundWorker
が、私にはそれを行うために使用する方が簡単に見えますQueueUserWorkItem
。