Gibt es eine "Standard" -Methode, um anzugeben, dass eine Taskfortsetzung in dem Thread ausgeführt werden soll, aus dem die ursprüngliche Task erstellt wurde?Taskfortsetzung auf dem UI-Thread
Derzeit habe ich den Code unten - es funktioniert, aber den Dispatcher verfolgen und eine zweite Aktion erstellen scheint wie unnötiger Aufwand.
dispatcher = Dispatcher.CurrentDispatcher;
Task task = Task.Factory.StartNew(() =>
{
DoLongRunningWork();
});
Task UITask= task.ContinueWith(() =>
{
dispatcher.Invoke(new Action(() =>
{
this.TextBlock1.Text = "Complete";
}
});
In Ihrem Beispiel könnten Sie 'Control.Invoke (Action)' verwenden, dh. 'TextBlock1.Invoke' statt' dispatcher.Invoize' –
Dank @ColonelPanic, aber ich war mit WPF (wie markiert), nicht winforms. –