众所周知(除了不知道的),C#5新增了一个异步等待的功能,用来来非常简单就能够实现异步等待 了。规则是这样的:
在调用异步方法前面加上await关键字,并且调用该异步方法的方法前面要 加上一个async关键字。
比如这样:
async void DoDelayAsync() { await Task.Delay(999999999); }
在进入DoDelayAsync方法时代码同步执行,直到遇到await运算符才会开始异步等待,在等待 任务执行完成之前,应用程序不会挂死,这用在用户界面上相当好,当代码在await处等 待异步操作完 成的过程中,用户依然可以操作界面上的其他元素。
以前,要做到这一点,通常需要从另一个线 程进行回调,使用委托来CallBack。如今使用await运算符就变得简单了N倍。
昨天晚上收到一 封垃圾邮件,确实是垃圾邮件,因为我是在垃圾箱中看到的一封未读信件。不知道是谁,反正连名字也 不敢报上来。他就提了这么个问题。
async static void Main(string[] args) { await Task.Delay(8000); Console.Read(); }
这位仁兄非常强大,竟然在入口点也玩起了异步等待,我猜他当时的内心世界一定是姹紫嫣 红的,开心得无法形容,因为他即将发现新大陆,在入口点也能异步await。后来我想他的内心世界肯定 变成了残花败柳。我估计当他狠狠地按下F5后,发现了以下惊魂一幕。
显然呢,编 译器是不希望他发现新大陆,狠狠地给他以沉重打击。
是啊,在方法内部用await异步等待,那 调用的方法肯定要在前面加上async的,但是偏偏这个方法又是Main,你拿他没办法。这下可怎么办呢?
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索方法
, task await delay
, 运算符
, 前面
, await
, async
入口
此异步方法缺少await、c 异步 await、async await异步语法、异步async await、devexpress 异步await,以便于您获取更多的相关知识。