Programing C# & Javascript | Photographic & Cinematograpic
这个例子与 Javascript 的 异步 await 执行顺序 相同,await 必须定义在 async 函数中.
async Task AF() { await Task.Delay(2000); //一个非常耗时的运算 Console.WriteLine($"3"); } async Task uaw() { Console.WriteLine($"2"); await AF(); Console.WriteLine($"4"); } Console.WriteLine($"1"); uaw(); Console.WriteLine($"5"); Console.ReadLine();
以上代码输出:1 2 5 3 4 , 其中3 和4会在5输出·之后的两秒钟后才会输出。
一一分解输出步骤:
简单总结:await 不仅仅是“等待”,而且会立即“返回”,并且把剩余的代码转移到另外线程中运行。
最后的重点:最外层的启动命令:uaw(); 本身没有 await , 如果加了 await 的话,会输出 1 2 3 4 5, 那就没有任何意义了。