執行緒傳引數問題

2021-07-10 01:27:59 字數 4532 閱讀 6658

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

由 .net compact framework 支援。  

thread (threadstart, int32) 初始化 thread 類的新例項,指定執行緒的最大堆疊大小。  

由 .net compact framework 支援。  

我們如果定義不帶引數的執行緒,可以用threadstart,帶乙個引數的用parameterizedthreadstart。帶多個引數的用另外的方法,下面逐一講述。

一、不帶引數的 

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;

namespaceaaaaaa

privatestaticvoida()

}

}

結果顯示method a! 

二、帶乙個引數的  

由於parameterizedthreadstart要求引數型別必須為object,所以定義的方法b形參型別必須為object。 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

usingsystem;

usingsystem.collections.generic;

usingsystem.text;

usingsystem.threading;

namespaceaaaaaa

privatestaticvoidb(objectobj)

!",obj.tostring ());

}

}

}

結果顯示method b! 

三、帶多個引數的  

由於thread預設只提供了這兩種建構函式,如果需要傳遞多個引數,我們可以自己將引數作為類的屬性。定義類的物件時候例項化這個屬性,然後進行操作。 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

usingsystem;

usingsystem.collections.generic;

usingsystem.text;

usingsystem.threading;

namespaceaaaaaa

}

classmy

,y=",this.x,this.y);

}

}

}

結果顯示x=2,y=3 

四、利用(物件)結構體給引數傳值。  

定義公用的public struct,裡面可以定義自己需要的引數,然後在需要新增執行緒的時候,可以定義結構體的例項。 1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

//結構體

(class)structrowcol

;

//定義方法

publicvoidoutput(object rc)

", _char);

console.write("\n");

}

}

publicstaticvoidmain()

thread t = new thread(new parameterizedthreadstart(

output));

t.start(model);  

console.read();

}

執行緒成環並傳引數

執行緒0執行緒1 執行緒2執行緒3 執行緒40 1 1 1 2 1 3 1 4 1 10 000 定義int list n 2 list n 0 中存要傳給下個執行緒的數 list n 1 存許可權 1表示可以操作,0表示不可以 初始情況如表 我沒有用互斥鎖及條件變數,使用while 內部sleep...

Mybatis傳多個引數問題

據我目前接觸到的傳多個引數的方案有三種。dao層的函式方法 publicuserselectuser stringname,string area selectid selectuser resultmap baseresultmap select fromuser user twhereuser ...

MyBatis傳多引數的問題

在做資料庫操作的時候,經常要傳多引數進sql語句,以前版本的ibatis,不支援直接傳多個引數進來,只能壓入物件或者hashmap中,這樣實在不是很方便。在現在的版本,終於有了支援。官方文件 你可以傳遞多個引數給乙個對映器方法。如果你這樣做了,預設情況下它們將會以它們 在引數列表中的位置來命名,比如...