欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

C#教程

當(dāng)前位置:主頁 > 軟件編程 > C#教程 >

C#向線程中傳遞多個參數(shù)的解決方法(兩種)

來源:本站原創(chuàng)|時間:2020-01-10|欄目:C#教程|點(diǎn)擊: 次

問題:

對于多線程編程,很多時候往往需要向線程中傳遞多個參數(shù),而C#中的線程只接收1個object類型的參數(shù)(如下):

Thread t = new Thread(new ParameterizedThreadStart(newthread));
t.start(參數(shù));
void newthread(object)
{
.............
}

而現(xiàn)在需要往線程中傳遞多個參數(shù),比如method方法想用單獨(dú)的線程來跑

void method(int begin,int end)
{
..................
}

解決辦法1:新建一個跑方法的類

class myclass
{
private int begin;
public int begin
{
set{this.begin=value;}
}
private int end;
public int end
{
set{this.end=value;}
}
public run()
{
method(begin,end);
}
private method(int begin,int end)
{
...............
}
}

然后新建一個該類實(shí)例,賦值之后就可以跑了,代碼如下;

myclass c = new myclass();
c.begin=100;
c.end=10000;
Thread t = new Thread(new Threadstart(c.run))
t.start();

2、解決方法2:將數(shù)組或集合實(shí)例作為參數(shù)傳入

目前正在做一個多線程的軟件,用到了這部分,感覺每次都要新建類,比較麻煩,查了網(wǎng)上主流都是解決方法1中的方法,后來自己琢磨出另一個方法,就是盡管新的線程只能傳1個參數(shù)進(jìn)去,但是我們可以傳一個集合或者數(shù)組類的參數(shù)進(jìn)去,這樣就可以解決一次向新線程中傳遞多個參數(shù)的問題了。

同樣,對于上面的method的方法,需要傳遞2個int類型的整數(shù),首先添加一個method方法的重載

void method(object o)
{
//此處對傳進(jìn)來的參數(shù)進(jìn)行處理
int[] p = (int[])o;
//調(diào)用原來的method方法
method(p[0],p[1]);
}

再將要傳遞的參數(shù)用數(shù)組或集合方式儲存起來

int para[]=new int[2]{100,10000};

最后新建線程進(jìn)行調(diào)用

THread t = new Thread(new ParameterizedThreadStart(method))
t.start(para);

這樣就可以達(dá)到將2個參數(shù)傳遞入線程的目的了。

傳遞的參數(shù)類型也可以用List<>或其他集合,傳遞進(jìn)去的這些參數(shù)的類型都是相同的,對于不同的類型,可以考慮采用List<object>或者object[] 的方式傳進(jìn)去,在重載的方法中再對參數(shù)進(jìn)行處理即可。

以上所述是小編給大家介紹的C#向線程中傳遞多個參數(shù)的解決方法(兩種) ,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對我們網(wǎng)站的支持!

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有