C 中如果正確使用執行緒Task類和Thread類

2021-06-25 18:36:27 字數 1075 閱讀 7850

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...