最初のタスクが作成されたスレッドでタスクの継続を実行するように指定する「標準」の方法はありますか?
現在、私は以下のコードを持っています-それは機能していますが、ディスパッチャーを追跡し、2番目のアクションを作成することは、不要なオーバーヘッドのように思えます。
dispatcher = Dispatcher.CurrentDispatcher;
Task task = Task.Factory.StartNew(() =>
{
DoLongRunningWork();
});
Task UITask= task.ContinueWith(() =>
{
dispatcher.Invoke(new Action(() =>
{
this.TextBlock1.Text = "Complete";
}
});
@ColonelPanicに感謝しますが、WinformsではなくWPF(タグ付き)を使用していました。
—
Greg Sansom
Control.Invoke(Action)
、すなわちを使うことができます。TextBlock1.Invoke
というよりdispatcher.Invoke