任務結束時,它可以把一些有用的狀態資訊寫到共享物件中。這個共享物件必須是執行緒安全的。另乙個選項是使用返回某個結果的任務。使用task類的泛型版本,就可以定義返回某個結果的任務的返回型別。
為了返回某個結果任務呼叫的方法可以宣告為帶任意返回型別。示例方法taskwithresult()利用乙個元組返回兩個int值。該方法的輸入可以是void或object型別,如下所示:
using system;
2:using system.collections.generic;
3:using system.linq;
4:using system.text;
5:using system.threading;
6:using system.threading.tasks;
7:namespace tasksamples
8:
19:
20:static
void main(string args)
21: ,", t1.result.item1, t1.result.item2);
27: console.readkey();
28: }
29: }
30: }該示例執行結果如下所示:
C Task的使用 連續的任務
通過任務,可以指定在任務完成之後,應開始執行之後另乙個特定任務。例如,乙個使用前乙個任務的結果的新任務,如果前乙個任務失敗了,這個任務就應執行一些清理工作。任務處理程式都不帶引數或者帶乙個物件引數,而任務的連續處理方法都有乙個task型別的引數,這裡可以訪問起始任務的相關資訊 如下面的示例 usin...
C Task的使用 Task的啟動
net 4.0包含的新命名空間system.threading.tasks,它包含的類抽象出了執行緒功能。任務表示應完成的某個單元的工作。這個單元的工作可以在單獨的執行緒中執行,也可以以同步的方式啟動乙個任務,這需要等待主調執行緒。使用任務不僅可以獲得乙個抽象層,還可以對底層執行緒進行許多控制。啟動...
celery的task任務結果在redis儲存亂碼
用redis做backend儲存celery非同步任務的結果,可以看到任務成功存進去了,127.0.0.1 6379 1 keys celery task meta 31a89019 4106 4685 8a71 0075d976d91e不過用這個key去查詢的時候可以看到結果亂碼 127.0.0....