在很多應用下,我們想要執行乙個不帶有一定先決條件的任務,比如如下**:
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 ...