Si consideri il seguente codice di Windows Form:Perché dovrei preoccuparmi di usare Task.ConfigureAwait (continueOnCapturedContext: false);
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.";
}
Qui l'eccezione viene generata al 3 ° linea perché dopo attendono il codice viene eseguito sul filetto non-UI. Dove ConfigureAwait (false) è utile?
OK - in ambiente non UI, non importa quale thread continua l'esecuzione del resto del metodo. C'è qualche impatto sulle prestazioni quando si usa il falso? Può essere atteso deve fare più lavoro (SynchronisationContext) se è costretto a eseguire la continuazione sul thread originale. –
Leggere [questo] (http://stackoverflow.com/questions/13489065/best-practice-to-call-configureawait-for-all-server-side-code) post. Ha un grande dettaglio –