async await Task
阿新 • • 發佈:2017-05-06
對象 hello cnblogs using 指定 順序 arp 等待 con
一、使用Task
引用命名空間
using System.Threading.Tasks;
1.工廠方式
Task.Factory.StartNew(() => {Console.WriteLine("Hello Task library!"); });
2.實例方式
Task task = new Task(() => PrintMessage()); task.Start();
3. .NET4.5
Task.Run(() => PrintMessage());
//將指定的結果包裝為已完成的TaskTask.FromResult<
int
>(GetSum(4, 5));
二、async和await
async和await(1)在async標識的方法體裏面,如果沒有await關鍵字的出現,那麽這種方法和調用普通的方法沒什麽區別。
(2)在async標識的方法體裏面,在await關鍵字出現之前,還是主線程順序調用的,直到await關鍵字的出現才會出現線程阻塞。
(3)await關鍵字可以理解為等待方法執行完畢,除了可以標記有async關鍵字的方法外,還能標記Task對象,表示等待該線程執行完畢。所以await關鍵字並不是針對於async的方法,而是針對async方法所返回給我們的Task。
(4)asyc方法的返回類型必須為void、Task或者Task<T>類型。也就是說async要麽是void,要麽和Task關聯。
async await Task