最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#往線程里傳遞參數(shù)的方法小結(jié)

 更新時(shí)間:2016年07月27日 10:43:56   作者:瓦里奧  
這篇文章主要介紹了C#往線程里傳參數(shù)的方法小結(jié)的相關(guān)資料,還給大家簡單說明下傳參的兩種方式,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下

傳參方式有兩種:

1、創(chuàng)建帶參構(gòu)造方法類 傳參

2、利用Thread.start(8)直接傳參,該方法會(huì)接收一個(gè)對(duì)象,并將該對(duì)象傳遞給線程,因此在線程中啟動(dòng)的方法

必須接收object類型的單個(gè)參數(shù)。

Thread (ParameterizedThreadStart) 初始化 Thread 類的新實(shí)例,指定允許對(duì)象在線程啟動(dòng)時(shí)傳遞給線程的委托。

Thread (ThreadStart) 初始化 Thread 類的新實(shí)例。

由 .NET Compact Framework 支持。

Thread (ParameterizedThreadStart, Int32) 初始化 Thread 類的新實(shí)例,指定允許對(duì)象在線程啟動(dòng)時(shí)傳遞給線程的委托,并指定線程的最大堆棧大小。

Thread (ThreadStart, Int32) 初始化 Thread 類的新實(shí)例,指定線程的最大堆棧大小。

由 .NET Compact Framework 支持。

我們?nèi)绻x不帶參數(shù)的線程,可以用ThreadStart,帶一個(gè)參數(shù)的用ParameterizedThreadStart。帶多個(gè)參數(shù)的用另外的方法,下面逐一講述。

一、不帶參數(shù)的

using System; 
using System.Collections.Generic; 
using System.Text; 
using System.Threading; 
namespace AAAAAA 
{ 
class AAA 
{ 
public static void Main() 
{ 
Thread t = new Thread(new ThreadStart(A)); 
t.Start(); 
Console.Read(); 
} 
private static void A() 
{ 
Console.WriteLine("Method A!"); 
} 
} 
} 

結(jié)果顯示Method A!

二、帶一個(gè)參數(shù)的

由于ParameterizedThreadStart要求參數(shù)類型必須為object,所以定義的方法B形參類型必須為object。

using System; 
using System.Collections.Generic; 
using System.Text; 
using System.Threading; 
namespace AAAAAA 
{ 
class AAA 
{ 
public static void Main() 
{ 
Thread t = new Thread(new ParameterizedThreadStart(B)); 
t.Start("B"); 
Console.Read(); 
} 
private static void B(object obj) 
{ 
Console.WriteLine("Method {0}!",obj.ToString ()); 
} 
} 
} 

結(jié)果顯示Method B!

三、帶多個(gè)參數(shù)的

由于Thread默認(rèn)只提供了這兩種構(gòu)造函數(shù),如果需要傳遞多個(gè)參數(shù),我們可以自己將參數(shù)作為類的屬性。定義類的對(duì)象時(shí)候?qū)嵗@個(gè)屬性,然后進(jìn)行操作。

using System; 
using System.Collections.Generic; 
using System.Text; 
using System.Threading; 
namespace AAAAAA 
{ 
class AAA 
{ 
public static void Main() 
{ 
My m = new My(); 
m.x = 2; 
m.y = 3; 
Thread t = new Thread(new ThreadStart(m.C)); 
t.Start(); 
Console.Read(); 
} 
} 
class My 
{ 
public int x, y; 
public void C() 
{ 
Console.WriteLine("x={0},y={1}", this.x, this.y); 
} 
} 
} 

結(jié)果顯示x=2,y=3

四、利用結(jié)構(gòu)體給參數(shù)傳值。

定義公用的public struct,里面可以定義自己需要的參數(shù),然后在需要添加線程的時(shí)候,可以定義結(jié)構(gòu)體的實(shí)例。

//結(jié)構(gòu)體 
struct RowCol 
{ 
public int row; 
public int col; 
}; 
//定義方法 
public void Output(Object rc) 
{ 
RowCol rowCol = (RowCol)rc; 
for (int i = 0; i < rowCol.row; i++) 
{ 
for (int j = 0; j < rowCol.col; j++) 
Console.Write("{0} ", _char); 
Console.Write("\n"); 
} 
} 

以上所述是小編給大家介紹的C#往線程里傳遞參數(shù)的方法小結(jié),希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

最新評(píng)論

梨树县| 桂阳县| 吉首市| 江油市| 四川省| 明溪县| 桓仁| 新安县| 太原市| 巴青县| 武清区| 宁乡县| 大渡口区| 西平县| 察哈| 田林县| 钟山县| 徐闻县| 贺州市| 巴中市| 甘孜县| 青岛市| 泸水县| 陆川县| 获嘉县| 郸城县| 东光县| 和田县| 潼南县| 崇信县| 利川市| 盐城市| 万荣县| 光泽县| 四子王旗| 建阳市| 丹寨县| 大足县| 玉田县| 淮北市| 永胜县|