C 多執行緒學習(四)帶引數的執行緒啟動

2021-08-03 09:22:55 字數 1415 閱讀 9450

在很多應用下,我們想要執行乙個不帶有一定先決條件的任務,比如如下**:

using system;

using system.threading;

namespace threadtest

////// 不帶引數的啟動方法

/// public

void

nonparameterrun()

", i);

thread.sleep(interval);}}

}}

這個任務就很簡單,沒有引數,引數在全域性變數中設定好了,執行每隔 interval ms 輸出一次 i 的值,但是這種方式的侷限性很大,比如如果有多個任務要執行不同時間間隔的輸出就很尷尬,還好c#提供了帶引數的執行緒啟動方案,在thread.start(object),由於c#中所有的基礎類都繼承於object類,所有我們可以通過強制型別轉換達到我們想傳入的不同型別的引數。以下為乙個帶參的例子:

using system;

using system.threading;

namespace threadtest

////// 帶引數的啟動方法

/// public

void

nonparameterrun(object interval)

", i);

thread.sleep(ms);}}

}}

繼續思考

上面解決了實現帶參的thread任務,當然我們有時候也會想傳入多個引數,比如上面的任務,我們不僅想傳入休眠時間,還想傳入輸出的 i 的數量

,我們當然可以通過傳入陣列、類之類的想法來實現,但那樣就太過於麻煩

所以我們可以通過構造乙個類來實現,**如下:

using system;

using system.threading;

namespace threadtest

public

void

start()

}///

/// 帶多個引數的啟動方法

/// public

void

task()

", i);

thread.sleep(m_interval);}}

}static

void main()

}}

這樣我們就可以在自己的thread中構建不同的引數結構或者實現很多其他的功能

我想大家已經了解了如何進行引數的傳遞和處理,而且也了解了如何封裝乙個自己的多引數或者多工的thread類。

很多時候,雖然c#、.net的類庫沒有給我們提供這些實現,但只要想方法,還是能自己解決的。

c 多執行緒 呼叫帶引數函式

執行緒操作主要用到thread類,他是定義在system.threading.dll下。使用時需要新增這乙個引用。該類提供給我們四個過載的建構函式 以下引自msdn thread threadstart 初始化 thread 類的新例項。由 net compact framework 支援。thre...

c 多執行緒 呼叫帶引數函式

執行緒操作主要用到thread類,他是定義在system.threading.dll下。使用時需要新增這乙個引用。該類提供給我們四個過載的建構函式 以下引自msdn thread threadstart 初始化 thread 類的新例項。由 net compact framework 支援。thre...

執行緒啟動帶引數的方法

執行緒啟動帶引數的方法 近期專案不是很緊張,就抽空看了下執行緒方面的書,下面是自己寫的一些讀書筆記,也算是自己在收集資料的乙個開始吧。執行緒操作主要用到thread類,他是定義在system.threading.dll下。使用時需要新增這乙個引用。該類提供給我們四個過載的建構函式 以下引自msdn ...