In his answer Stephen explained that when ConfigureAwait(false)
is called the rest of the method will be executed on a thread pool thread unless the Task
you're await
ing is already complete.
What is clear: If I use ConfigureAwait(false)
everything executed after the asynchronous call will be executed on a thread pool thread and therefore not run in the UI SynchronizationContext, otherwise (escpecially needed for UI based things like textBox1.Text = data.Property
) it runs within UI SynchronizationContext.
What I don't understand is: Does await
not mean that the Task
I am waiting for is always completed before the methods is going on? So how can the Task not be completed before going on?