何时使用 await 关键字

6

如果一个方法被声明为“async”,当我们调用该方法时,我们可以使用await或不使用它。我想知道什么时候使用它以及使用它的效果。


1
你的方法有些不对:只有在需要使用await时才应该使用async。当你需要异步等待某个操作时,才使用await - Stephen Cleary
2个回答

2
“async”关键字只是向编译器表明该方法可能包含一个await语句。
Eric Lippert的一篇有趣的文章解释了这个设计选择。
引用:“要求‘async’意味着我们可以一次性消除所有向后兼容性问题;任何包含await表达式的方法必须是“新建代码”,而不是“旧工作”代码,因为“旧工作”代码从来没有async修饰符。”

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


1
标记的异步方法通常使用 await 来指定挂起点。await 运算符告诉编译器,在等待异步进程完成之前,异步方法无法继续超过该点。同时,控制权返回到异步方法的调用者。
换句话说,如果您正在进行异步编程并希望同时运行某些线程任务,则需要依赖于 async 和 await。
更详细的解释在此处。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接