.net 任务(Task)
生活随笔
收集整理的這篇文章主要介紹了
.net 任务(Task)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. Task (任務):
? ?很容易調用?ThreadPool.QueueUserWorkItem 實現異步操作,但是這個技術有許多
? ?.net 引入Task類型來使用任務。
? ?如下幾種方式都是實現異步的方法:
public static void Method(){ThreadPool.QueueUserWorkItem((o) => Console.WriteLine(""));//通過Start()來調度任務new Task(() => Console.WriteLine("")).Start();//通過Run方法 來調度任務Task.Run(() => Console.WriteLine(""));Task.Factory.StartNew(() => Console.WriteLine(""));}
a. 為了創建一個Task,需要調用構造器并傳遞一個Action 或 Action<Object> 委托。這個委托就是你想執行的代碼操作。
b. 如果調用Run 可以傳遞一個Action 或 Fun<Tresult> 委托。 兩種區別在于 Aciton 無返回值, Fun 有返回值
?
?2. 等待 任務完成并獲取結果:
public static void Method2(){//創建一個TaskTask<int> t = new Task<int>(n => Sum((int)n), 10);//啟動任務 t.Start();//等待任務完成 t.Wait();//獲取結果Console.WriteLine("Sum is:{0}", t.Result);}private static int Sum(int n){int sum = 0;for (; n > 0; n--){checked { sum += n; }}return sum;}?
3. 取消任務:
?CancellationTokenSource
?
Parallel 靜態 For,ForEach和Invoke.
?Task.Run(async () => await Result);
轉載于:https://www.cnblogs.com/dragon-L/p/5399254.html
總結
以上是生活随笔為你收集整理的.net 任务(Task)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 定义method_pyth
- 下一篇: mysql数据库管理与开发pdf_深入浅