6

如果一个方法被声明为'async',当我们调用那个方法时,我们可以使用await或者不使用它。我想知道什么时候用它,用它有什么效果。

4

2 回答 2

2

async 关键字只是向编译器指示该方法可能包含等待语句。

Eric Lippert 有一篇有趣的文章解释了设计选择

要求“异步”意味着我们可以一次消除所有向后兼容性问题;任何包含 await 表达式的方法都必须是“新构造”代码,而不是“旧工作”代码,因为“旧工作”代码从来没有 async 修饰符。

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

于 2012-11-28T02:40:29.250 回答
1

标记的异步方法通常使用 await 来指定暂停点。await 运算符告诉编译器,在等待的异步过程完成之前,异步方法不能继续超过该点。与此同时,控制权返回给异步方法的调用者。

换句话说,如果你正在做 asyncronius 编程并且想要同时运行某些线程任务,你会想要依赖 async 和 await

更详细的解释在这里

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

于 2012-11-28T02:43:03.783 回答