Betrachten Sie den folgenden Code von Windows Forms:Warum würde ich Mühe haben, Task.ConfigureAwait (continueOnCapturedContext: false) zu verwenden;
private async void UpdateUIControlClicked(object sender, EventArgs e)
{
this.txtUIControl.Text = "I will be updated after 2nd await - i hope!";
await Task.Delay(5000).ConfigureAwait(continueOnCapturedContext: false);
this.txtUIControl.Text = "I am updated now.";
}
Hier ist die Ausnahme in der 3. Zeile ausgelöst wird, weil, nachdem der Code wartet auf nicht-UI-Thread ausgeführt wird. Wo ist ConfigureAwait (false) nützlich?
Okay - in nicht UI-Umgebung spielt es keine Rolle, welcher Thread die Ausführung des Rests der Methode fortsetzt. Wird bei Verwendung von false ein Leistungseinbruch erzielt? Kann warten, muss mehr Arbeit (SynchronizationContext), wenn es gezwungen ist, die Fortsetzung auf dem ursprünglichen Thread auszuführen. –
Lesen Sie [this] (http://stackoverflow.com/questions/13489065/best-practice-to-call-configureawait-for-all-server-side-code) Post. Hat großes Detail –