1. 程式人生 > >異步編程(三)

異步編程(三)

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); });

異步編程(三)