如果一个方法被声明为'async',当我们调用该方法时,我们可以使用await或不使用它。我想知道何时使用它以及使用它的效果是什么。
答案 0 :(得分:2)
async关键字只是编译器指示该方法可能包含await语句的指示符。
Eric Lippert解释设计选择时有一篇有趣的帖子
要求“异步”意味着我们可以立即消除所有向后兼容性问题;任何包含await表达式的方法都必须是“new construction”代码,而不是“old work”代码,因为“old work”代码从来没有async修饰符。
http://blogs.msdn.com/b/ericlippert/archive/2010/11/11/whither-async.aspx
答案 1 :(得分:1)
标记的异步方法通常使用等待来指定挂起点。 await运算符告诉编译器异步方法无法继续超过该点,直到等待的异步进程完成。在此期间,控制权返回到异步方法的调用者。
换句话说,如果你正在进行asyncronius编程并希望同时运行某些线程任务,那么你会希望依赖异步并等待
更详细的解释在这里
http://msdn.microsoft.com/en-us/library/vstudio/hh191443.aspx