1. 程式人生 > >async await Task

async await Task

對象 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());
//將指定的結果包裝為已完成的Task
Task.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