異步編程(三)
阿新 • • 發佈:2017-09-02
pro c# back 之前 ack .cn href image manage
4. c#4.x Task的新特性 Async && Await
這種編程方式是對之前Task的補充和擴展,簡化了異步編程,讓喜歡用同步編程的同學,使用起來更順手:
static void Main() { Console.WriteLine("Main Thread begin Thread ID:{0}",Thread.CurrentThread.ManagedThreadId); Program prgo = new Program(); prgo.DoSomething(3); Console.WriteLine("Main Thread Lasting Thread ID:{0}", Thread.CurrentThread.ManagedThreadId); Console.Read(); } public async void DoSomething(int id)//這裏開啟一個異步方法, Async 標誌 { await LoopingAjob(id); // await Task.Run(() => { Console.WriteLine("A task awit test {0}",id); });} public Task LoopingAjob(int id)//這裏是一個執行的任務 { return Task.Run(()=> { Thread.Sleep(1000); Console.WriteLine("Task {0} run-> Thread ID:{1}",id,Thread.CurrentThread.ManagedThreadId); }); }
Await 表示等待,等待異步的完成,並在當刻阻塞線程,直到異步的完成; await可以標記任務 和異步方法
await Task.Run(() => { Console.WriteLine("A task awit test {0}",id); });
異步編程(三)