1. 方法打上Async關鍵字, 就可使用await調用別的Async方法了html
2. 記得在須要異步執行的方法裏面調用await或者newstask, 才能開啓新的線程異步
static void Main(string[] args) { // 異步方式 Console.WriteLine("\n異步方式測試開始!main線程id是{0}",System.Threading.Thread.CurrentThread.ManagedThreadId); AsyncMethod(0); //AsyncMethod_taks(10); Console.WriteLine("異步方式測試結束!"); Console.ReadKey(); } // 異步操做 private static async void AsyncMethod(int input) { Console.WriteLine("進入異步操做!線程id是{0}", System.Threading.Thread.CurrentThread.ManagedThreadId); var result = await AsyncWork(input); Console.WriteLine("最終結果{0}, 線程ID是{1}", result, System.Threading.Thread.CurrentThread.ManagedThreadId); Console.WriteLine("退出異步操做!"); } // 模擬耗時操做(異步方法) private static async Task<int> AsyncWork(int val) { await Task.Delay(2000); for (int i = 0; i < 5; ++i) { Console.WriteLine("耗時操做{0}, 線程id是 {1}", i, System.Threading.Thread.CurrentThread.ManagedThreadId); val++; } return val; }
更推薦這種寫法async