日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
C#線程傳遞參數(shù)實(shí)現(xiàn)淺析

C#線程傳遞參數(shù)的實(shí)現(xiàn)是如何進(jìn)行的呢?那么這里我們使用MyThread來為線程傳遞任意復(fù)雜的參數(shù),那么下面就向你詳細(xì)介紹具體的實(shí)現(xiàn)過程。

創(chuàng)新互聯(lián)公司主營黃浦網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,重慶APP軟件開發(fā),黃浦h5重慶小程序開發(fā)搭建,黃浦網(wǎng)站營銷推廣歡迎黃浦等地區(qū)企業(yè)咨詢

Thread類有一個(gè)帶參數(shù)的委托類型的重載形式。這個(gè)委托的定義如下:

 
 
 
  1. [ComVisibleAttribute(false)]
  2. public delegate void ParameterizedThreadStart(Object obj)

C#線程傳遞參數(shù)之Thread類的構(gòu)造方法的定義如下:

 
 
 
  1. public Thread(ParameterizedThreadStart start);

下面的代碼使用了這個(gè)帶參數(shù)的委托向線程傳遞一個(gè)字符串參數(shù):

 
 
 
  1. public static void myStaticParamThreadMethod(Object obj)
  2. {
  3. Console.WriteLine(obj);
  4. }
  5. static void Main(string[] args)
  6. {
  7.   Thread thread = new Thread(myStaticParamThreadMethod);
  8.   thread.Start("通過委托的參數(shù)傳值");
  9. }

要注意的是,如果使用的是不帶參數(shù)的委托,不能使用帶參數(shù)的Start方法運(yùn)行線程,否則系統(tǒng)會(huì)拋出異常。但使用帶參數(shù)的委托,可以使用thread.Start()來運(yùn)行線程,這時(shí)所傳遞的參數(shù)值為null。

C#線程傳遞參數(shù)之定義一個(gè)類來傳遞參數(shù)值:

實(shí)現(xiàn)具體的代碼如下:

 
 
 
  1. class MyData
  2. {
  3. private String d1;
  4. private int d2;
  5. public MyData(String d1, int d2)
  6. {
  7.   this.d1 = d1;
  8.   this.d2 = d2;
  9. }
  10. public void threadMethod()
  11. {
  12.   Console.WriteLine(d1);
  13.   Console.WriteLine(d2);
  14. }
  15. }
  16. MyData myData = new MyData("abcd",1234);
  17. Thread thread = new Thread(myData.threadMethod);
  18. thread.Start();

如果使用MyThread類,傳遞參數(shù)會(huì)顯示更簡單:

 
 
 
  1. class NewThread : MyThread
  2. {
  3. private String p1;
  4. private int p2;
  5. public NewThread(String p1, int p2)
  6. {
  7. this.p1 = p1;
  8. this.p2 = p2;
  9. }
  10. override public void run()
  11. {
  12. Console.WriteLine(p1);
  13. Console.WriteLine(p2);
  14. }
  15. }
  16. NewThread newThread = new NewThread("hello world", 4321);
  17. newThread.start();

C#線程傳遞參數(shù)的相關(guān)內(nèi)容就向你介紹到這里,希望對(duì)你了解和學(xué)習(xí)C#線程傳遞參數(shù)有所幫助。


當(dāng)前文章:C#線程傳遞參數(shù)實(shí)現(xiàn)淺析
地址分享:http://www.dlmjj.cn/article/dpoodgo.html