2012-11-28 77 views
6

如果一個方法被聲明爲'async',那麼當我們調用該方法時,我們可以使用await或不使用它。我想知道何時使用它,以及使用它的效果是什麼。何時使用等待關鍵字

+1

你接近它:只有當你需要使用'await'時才應該使用'async'。當需要異步等待某些操作時,可以使用'await'。 –

回答

2

async關鍵字只是編譯器的一個指示器,表明該方法可能包含await語句。

這裏有一個有趣的帖子由埃裏克利珀解釋要求「異步」的設計選擇

意味着我們可以消除一次全部向後兼容性的問題;任何包含await表達式的方法都必須是「新建」代碼,而不是「舊工作」代碼,因爲「舊工作」代碼從未有過異步修飾符。

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

1

所標記的異步方法通常使用等待指定懸掛點。 await運算符告訴編譯器,異步方法不能超過該點,直到等待的異步過程完成。同時,控制權返回給異步方法的調用者。

換句話說

如果你正在做asyncronius編程,並希望simultaniusly運行某些線程任務,你會想要依靠異步和等待

更詳細的解釋在這裏

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