.net 中的async,await理解
理解: 1、async修饰的方法可理解为异步方法(必须要配合await,否则和普通方法无异) 2、当async方法执行遇到await,则立即将控制权转移到async方法的调用者 3、由调用者决定是否需要等待async方法执行完再继续往下执行 4、await会挂起当前方法,即阻塞当前方法继续往下执行,转交控制权给调用者 注意:如果调用一个async方 法,却不使用await关键字来标记一个挂起点的话,程序将会忽略async关键字并以同步的方式执行。编译器会对类似的问题发出警告。 例子一:(控制台程序) 1 static void Main(string[] args) 2 { 3 MyMain();//由于main方法无法定义成async,顾此定义一个方法MyMain来表示main方法。 4 Console.Read(); 5 } 6 static async void MyMain() 7 { 8 Console.WriteLine("main方法开始执行"); 9 AsyncAction(); 10 Console.WriteLine("main方法继续执行"); 11 Console.WriteLine("main方法执行结束"); 12 } 13 14 static async Task<string> AsyncAction() 15 { 16 Console