Существует ли «стандартный» способ указать, что продолжение задачи должно выполняться в потоке, из которого была создана начальная задача?Продолжение задачи в потоке пользовательского интерфейса
В настоящее время у меня есть код ниже - он работает, но отслеживание диспетчера и создание второго действия кажется ненужным накладными расходами.
dispatcher = Dispatcher.CurrentDispatcher;
Task task = Task.Factory.StartNew(() =>
{
DoLongRunningWork();
});
Task UITask= task.ContinueWith(() =>
{
dispatcher.Invoke(new Action(() =>
{
this.TextBlock1.Text = "Complete";
}
});
В случае вашего примера вы можете использовать `Control.Invoke (Action)`, т.е. `TextBlock1.Invoke`, а не` dispatcher.Invoke` – 2016-07-12 11:11:02
Спасибо @ColonelPanic, но я использовал WPF (как помечено), а не winforms. – 2016-07-13 03:12:57