c#中使用執行緒task類和thread類小結
剛接觸c#3個月左右,原先一直使用c++開發,因為公司的需要,所地採用c#開發,主要是控制裝置的實時性操作,此為背景。
1.task適合用於多處理器,且i系列多處理器。
2.thread則適用於所有的處理器,實時性更高。
下面是我的個人測試**:
其中使用的對錯可能是我個人對c#執行緒理解不夠引起的,如果有使用不正確錯,望大鳥指導。
private static void threadandtasktest()
);//thread threadtest2 = new thread(() =>
//);
//thread threadtest3 = new thread(() =>
//);
var task1 = task.factory.startnew(() =>
);var task2 = task.factory.startnew(() =>
);var task3 = task.factory.startnew(() =>
);while (watch.elapsedmilliseconds <= 3000)
else
thread.sleep(1);}}
上面採用task測試結果如下:
同樣的**採用thread的測試結如下:
上面測試環境在:
處理器:pentium(r)dual-core cpu e6700 @3.20ghxz
安裝記憶體(ram):4.0gb
系統型別:32位作業系統
如果採用 i5系列的cpu,其它硬體環境都一樣則不會有這種超時情況.
在此也遇到點問題:執行緒20個以上同時執行,執行緒的實時性差異也很大,同乙個執行緒函式差距有700ms.
後續的幾篇文章對其應用作了更新和封裝,可以在專欄裡檢視。
如果感覺對你有幫助,請支援肯定下博主的努力!
c 關於Task類處理多執行緒的學習
1.定義乙個執行緒 var task1 task.factory.startnew dosomework 方法如下 view code private static object dosomework 2.多執行緒執行後,執行另乙個方法 var task1 task.factory.startnew...
c 關於Task類處理多執行緒的學習
1.定義乙個執行緒 var task1 task.factory.startnew dosomework 方法如下 view code private static object dosomework 2.多執行緒執行後,執行另乙個方法 var task1 task.factory.startnew...
c 執行緒中任務Task的實際運用
應用場景 如果兩個函式執行沒有先後關係,以及不存在彼此依賴,那麼可以在後台開啟執行緒任務讓他們同步執行,這樣可以節省不少時間。請看下面例子 testmethod public void test if checkflighttask null if checkhoteltask null if ch...