執行緒中傳遞引數

2021-04-27 10:58:03 字數 1682 閱讀 8778

執行緒操作主要用到thread類,他是定義在system.threading.dll下。使用時需要新增這乙個引用。該類提供給我們四個過載的建構函式(以下引自msdn)。

thread (threadstart)  初始化 thread 類的新例項。

由 .net compact framework 支援。

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)     //注意型別是object

!",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 output(object rc)

", _char);

console.write("/n"); }

}再補充乙個方法 使用委託:

public void run(string name,string id)

public void sommethod()

) );

thread.start(); }

給執行緒傳遞引數

執行緒操作主要用到thread類,他是定義在system.threading.dll下。使用時需要新增這乙個引用。該類提供給我們四個過載的建構函式 以下引自msdn 我們如果定義不帶引數的執行緒,可以用threadstart 帶乙個引數的用parameterizedthreadstart。帶多個引數...

多執行緒 引數傳遞

4,unique ptr作為引數傳遞,必須使用move函式 5,函式的指標作為引數傳遞 引用傳遞,指標傳遞的注意事項 因為執行緒2裡使用的是執行緒1的變數a,所以如果執行緒1比執行緒2提前結束了,結束的同時就會釋放變數a的記憶體空間,可是這時執行緒2還沒結束,再去訪問執行緒1中的變數a的話,就會發生...

執行緒的引數傳遞

執行緒大家都聽說過,也或多或少的看到過或使用過。但對於執行緒中的引數傳遞可能會比較陌生,今天我在這就跟大家分享下執行緒的傳遞方法。在分享執行緒的引數傳遞方法之前我們先來看看不帶參的執行緒 using system.threading 在使用執行緒前別忘記了加上命名空間 public class th...