public void test2() { //在出现await的地方,异步才开始发生 DemoAsync2(); Console.WriteLine("同步代码"); } async Task DemoAsync2() { //感觉:await标识异步代码的开始 //await关键字是函数开始变成异步的地方,它像是一个一元操作符 //执行的过程: //如果await发现awaitable尚未完成,那么它就会以异步方式运行。它让awaitable去运行函数剩余部分直到结束,然后从异步函数中返回。 //接下来,当awaitable结束之后,它会执行异步函数的剩余部分。 Console.WriteLine("已经睡了3秒 前"); //await标识异步代码的开始 await Task.Run(() => { Thread.Sleep(3000); Console.WriteLine("已经睡了3秒 了"); }); Console.WriteLine("已经睡了3秒 后"); Console.WriteLine("又睡了3秒 前"); Thread.Sleep(3000); Console.WriteLine("又睡了3秒 后"); }