国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

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

2019-10-29 21:23:41
字體:
來源:轉載
供稿:網友

問題:

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

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

而現在需要往線程中傳遞多個參數,比如method方法想用單獨的線程來跑

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){...............}}

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

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

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

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

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

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

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

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

最后新建線程進行調用

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

這樣就可以達到將2個參數傳遞入線程的目的了。

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

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


注:相關教程知識閱讀請移步到c#教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 景德镇市| 万山特区| 南昌县| 株洲市| 吉安县| 射洪县| 姜堰市| 福州市| 榆社县| 府谷县| 麻江县| 綦江县| 宜兰市| 德惠市| 涿鹿县| 尉氏县| 大方县| 玉田县| 黔东| 九江县| 阳曲县| 红原县| 静宁县| 崇礼县| 宣城市| 济源市| 柏乡县| 沈丘县| 宾川县| 霍城县| 竹北市| 安庆市| 新津县| 东乡族自治县| 安仁县| 无为县| 宣化县| 泰来县| 阿鲁科尔沁旗| 桐庐县| 错那县|