C# 使用Task執(zhí)行異步操作
當(dāng)復(fù)雜的異步操作需要在C#4.0之前執(zhí)行時,只有CLR線程池技術(shù)可以用來執(zhí)行一個任務(wù)。當(dāng)線程池執(zhí)行異步任務(wù)時,它不知道任務(wù)何時完成,并且在任務(wù)完成后無法獲得返回值。然而,C#4.0引入了一個任務(wù)(系統(tǒng)類型。線程化(Threading.Tasks namespace)機(jī)制來解決異步操作完成時間和完成后返回值的問題。
-1步閱讀工具/原材料Visual Studio 2017方法/步驟1首先雙擊打開VS并創(chuàng)建一個新項目。詳細(xì)步驟如下圖所示。
-2步閱讀-3步閱讀-4步閱讀2首先查看整體代碼。
-5步讀取-6步讀取3完成代碼所需的命名空間。
使用系統(tǒng)。線程。任務(wù);
使用靜態(tài)系統(tǒng)??刂婆_。
-7步閱讀4簡要解釋代碼。
任務(wù)<。int>。任務(wù)=新任務(wù)。int>。(func);
用int類型的返回值實例化一個任務(wù)。
-8步讀取5實例化任務(wù)需要返回值類型為int的委托。
因此,讓我們定義委托和實例化委托的方法(異步操作的具體問題)。
詳細(xì)代碼如圖所示。
下一步是開始這項任務(wù)。
任務(wù)。開始();
接下來,有一個等待方法來等待任務(wù)完成并獲得返回值(如果沒有返回值,這個步驟可以省略),最后輸出異步執(zhí)行結(jié)果。
任務(wù)。等待();
寫線任務(wù)執(zhí)行結(jié)果{0}任務(wù)。結(jié)果。ToString());
步驟讀取8,最后檢查運(yùn)行結(jié)果。
子線程不會阻塞主線程。
-12步閱讀結(jié)束筆記僅供參考!我希望我能幫助每個人!