Async和await關鍵字的用法

async & await 的前世此生(Updated)

1. 方法打上Async關鍵字, 就可使用await調用別的Async方法了html

2. 記得在須要異步執行的方法裏面調用await或者newstask, 才能開啓新的線程異步

image image
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

image
相關文章
相關標籤/搜索