2012-11-28 11 views
6

Wenn eine Methode als 'async' deklariert ist, können wir sie beim Aufruf dieser Methode verwenden oder nicht verwenden. Ich möchte wissen, wann ich es verwenden soll und welche Wirkung es hat.Wann verwenden Sie das Schlüsselwort await

+1

Du bist Sie nähern sich rückwärts: Sie sollten 'async' nur verwenden, wenn Sie' wait' benötigen. Sie verwenden 'erwarten', wenn Sie asynchron auf eine Operation warten müssen. –

Antwort

2

Das async-Schlüsselwort ist nur ein Hinweis für den Compiler, dass die Methode eine wait-Anweisung enthalten kann.

Es ist ein interessanter Beitrag von Eric Lippert erklärt die Designwahl

Erfordern „async“ bedeutet, dass wir alle die Abwärtskompatibilität Probleme auf einmal zu beseitigen; Jede Methode, die einen -Awarterausdruck enthält, muss Code für "neue Konstruktion" sein, nicht Code für "alte Arbeit", da Code für "alte Arbeit" nie einen Async-Modifikator hatte.

http://blogs.msdn.com/b/ericlippert/archive/2010/11/11/whither-async.aspx

1

Die markierte async Verfahren erwarten verwenden typischerweise Aufhängepunkte zu bezeichnen. Der Operator "wait" teilt dem Compiler mit, dass die asynchrone Methode nicht über diesen Punkt hinaus fortgesetzt werden kann, bis der erwartete asynchrone Prozess abgeschlossen ist. In der Zwischenzeit kehrt die Steuerung zum Aufrufer der asynchronen Methode zurück.

in anderen Worten, wenn Sie asyncronius Programmierung tun und wollen simultaniusly bestimmten Thread Task ausgeführt würden Sie auf async verlassen wollen und erwarten

nähere Erläuterungen sind hier

http://msdn.microsoft.com/en-us/library/vstudio/hh191443.aspx

Verwandte Themen