Test1Async() 和 Test2Async() ,在Main()方法里都可以正常异步调用。两个方法有什么区别?
static void Main(string[] args) { Console.WriteLine("Hello World!"); Test1Async(); Console.WriteLine("Call TestAsync1 OK!"); Test2Async(); Console.WriteLine("Call TestAsync2 OK!"); Console.Read(); } public async static void Test1Async() { await Task.Run(() => { System.Threading.Thread.Sleep(5 * 1000); Console.WriteLine("TestAsync1 OK!"); }); } public static void Test2Async() { Task.Run(() => { System.Threading.Thread.Sleep(5 * 1000); Console.WriteLine("TestAsync2 OK!"); }); }
上面的代码没有在Main方法中Wait()
,成功地掩盖了它们的区别
async 是为了和Wait配合使用的。
你不用aWait,第一没有办法得到返回值
第二 有时候就是需要上一步执行完了,才下一步,必须wait。
但如果不用异步,界面会有卡顿的感觉。