傳參方式有兩種:
1、建立帶參構造方法類 傳參
2、利用thread.start(8)直接傳參,該方法會接收乙個物件,並將該物件傳遞給執行緒,因此**程中啟動的方法
必須接收object型別的單個引數。
thread (parameterizedthreadstart) 初始化 thread 類的新例項,指定允許物件**程啟動時傳遞給執行緒的委託。
thread (threadstart) 初始化 thread 類的新例項。
由 .net compact framework 支援。
thread (parameterizeuupwympfdthreadstart, int32) 初始化 thread 類的新例項,指定允許物件**程啟動時傳遞給執行緒的委託,並指定執行緒的最大堆疊大小www.cppcns.com。
thread (threadstart, int32) 初始化 thread 類的新例項,指定執行緒的最大堆疊大小。
由 .net compact framework 支援。
我們如果定義不帶引數的執行緒,可以用threadstart,帶乙個引數的用parameterizedthreadstart。帶多個引數的用另外的方法,下面逐一講述。
一、不帶引數的
using system;
using system.collections.generic;
using system.text;
using system.threading;
namespace aaaaaa
private static void a() }
}結果顯示method a!
二、帶乙個引數的
由於parameterizedthreadstart要求引數型別必須為object,所以定義的方法b形參型別必須為object。
using system;
using system.collections.generic;
using system.text;
using system.threading;
namespace aaaaaa
private static void b(object obj)
!",obj.tostring ());
} }
}結果顯示method b!
三、帶多個引數的
由於thread預設只提供了這兩種建構函式,如果需要傳遞多個引數,我們可以自己將引數作為類的屬性。定義類的物件時候例項化這個屬性,然後進行操作。
using system;
using system.collections.generic;
using system.text;
using system.threading;
namespace aaaaaa }
class my
,y=", this.x, this.y);
} }
}結果顯示x=2,y=3
四、利用結構體給引數傳值。
定義公用的public struct,裡面可以定義自己需要的引數,然後在需要新增執行緒的時候,可以定義結構體的例項。
//結構體
struct rowcol
; //定義方法
public void outp程式設計客棧ut(object rc)
", _char);
console.write("\n");
} }以上所述是小編給大家介紹的c#往執行緒裡傳遞引數的方法小結,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對我們**的支援
本文標題: c#往執行緒裡傳遞引數的方法小結
本文位址:
C WinForm 往執行緒裡傳引數的方法總結
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 usingsystem usingsystem.collections.generic usingsystem.text usingsystem.threading namespa...
c 執行緒方法傳遞引數
lamada表示式是向執行緒傳入引數的最方便 最強大的方法。先弄乙個方法 void domore1 string name,string age 呼叫的時候 thread t5 new thread domore1 more 1 232 t5.isbackground true t5.start 好...
C 多執行緒引數傳遞
在多執行緒或單執行緒任務中,讓執行緒帶傳入引數一直是個麻煩的問題,通常有種方法就是以類,對像的變數來傳引數,這種方法理解上很簡單不過在某些場合使用很麻煩,這裡就不介紹了,我們主要介紹一種.net2.0中新增加的帶引數執行執行緒的方法,示例程式如下 parameterizedthreadstart p...