Task continuation on UI thread

Is there a ‘standard’ way to specify that a task continuation should run on the thread from which the initial task was created?

Currently I have the code below – it is working but keeping track of the dispatcher and creating a second Action seems like unnecessary overhead.

dispatcher = Dispatcher.CurrentDispatcher;
Task task = Task.Factory.StartNew(() =>
{
    DoLongRunningWork();
});

Task UITask= task.ContinueWith(() =>
{
    dispatcher.Invoke(new Action(() =>
    {
        this.TextBlock1.Text = "Complete"; 
    }
});

5 Answers
5

Leave a Comment