天天看點

Async和await關鍵字的用法

async & await 的前世今生(Updated)

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

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

Async和await關鍵字的用法
Async和await關鍵字的用法
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和await關鍵字的用法

本人在長沙, 有工作可以加我QQ4658276