是否有一种“标准”方法来指定任务继续应该在创建初始任务的线程上运行?
目前,我有下面的代码-它正在工作,但是跟踪调度程序并创建第二个Action似乎是不必要的开销。
dispatcher = Dispatcher.CurrentDispatcher; Task task = Task.Factory.StartNew(() => { DoLongRunningWork(); }); Task UITask= task.ContinueWith(() => { dispatcher.Invoke(new Action(() => { this.TextBlock1.Text = "Complete"; } });
调用延续TaskScheduler.FromCurrentSynchronizationContext():
TaskScheduler.FromCurrentSynchronizationContext()
Task UITask= task.ContinueWith(() => { this.TextBlock1.Text = "Complete"; }, TaskScheduler.FromCurrentSynchronizationContext());
仅当当前执行上下文在UI线程上时,这才适用。