您好,登錄后才能下訂單哦!
這次要分享的是C#Task任務的幾個列子,感覺最實用的是封裝的分頁任務執行方法,這個方法步奏也是目前在我工作中執行多任務常用的,不知道各位也有這用的情況,那么開始吧。
1.順序任務執行
View Code
上面的代碼中也備注了一些文字說明,其中有關鍵詞語及意思如下:
.Task.Factory.StartNew:創建一個Task實例,創建后自動開啟,無需在調用Start;
.ContinueWith:看單詞的意思就明了,是繼續的意思,在這里的效果也是等待上一個Task執行完畢了在繼續執行本次任務,這里方法里面每個任務是一層一層傳遞的
效果圖:
這里有個地方注意,sleep這是了5s但是這里使用Stopwatch統計出來只有4999ms,這個地方存在差異性,本章不解釋,有興趣朋友可以分享下或研究下。
2.并行任務效果
View Code
關鍵詞語及意思如下:
.Func<object, int>這個是C#新增的特性,這個和Action最大的區別就是Func有返回值,其他的和Action相同任意長度參數個數和類型
.Task.WaitAll這個方法有幾個重載,這里用的是一個超時時間的方法,設置時間后在規定的時間就不繼續等待Task【】了,如果task【】在超時時間范圍內就執行完了,那么直接通過,不用再等待超時時間
效果:
這里依然有統計時間查問題,忽略
3.分頁任務執行方法
View Code
測試代碼:
View Code
View Code
這里使用的是分頁的原理,把參數集合分發到創建的Task中,使用Task【】來處理這些數據,這里和第二個例子有點相識就多了分頁寫法而已,最后統計執行成功的條數,以此來返回給調用者,方便記錄日志,此方法目前是我經常使用的,不知道是否還有更好的,各位多多分享,謝謝。
效果圖:
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。