国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - C# - C#使用委托的形式調(diào)用線程代碼實(shí)例

C#使用委托的形式調(diào)用線程代碼實(shí)例

2022-03-03 13:50Czhenya C#

今天小編就為大家分享一篇關(guān)于C#使用委托的形式調(diào)用線程代碼實(shí)例,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧

委托

對(duì)于委托,我們都知道他是一個(gè)引用類型,具有引用類型所具有的通性。需要知道的是它保存的不是實(shí)際值,只是是保存對(duì)存儲(chǔ)在托管堆中的對(duì)象的引用。或說(shuō)的直接點(diǎn),委托就相當(dāng)于叫人幫忙,讓你幫你做一些事情。我這里就使用委托的形式,調(diào)用線程,來(lái)簡(jiǎn)單的說(shuō)一下。

代碼如下:

?
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
using system;
using system.threading;
namespace _012_線程
{
  class program
  {
    static void main(string[] args) //在mian中線程是執(zhí)行一個(gè)線程里面的語(yǔ)句的執(zhí)行,是從上到下的
    {
      //通過(guò)委托 開啟一個(gè)線程
      //==============可用泛型傳參數(shù)(無(wú)返回值)==============
      action threaa = threadtesta;
      threaa.begininvoke(null,null); //開啟一個(gè)新的線程去執(zhí)行,threaa所引用的方法
      action<int> threab = threadtestb;
      threab.begininvoke(111,null, null);
      //可以認(rèn)為線程是同時(shí)執(zhí)行的 (異步執(zhí)行)
      console.writeline("異步執(zhí)行");
      //================帶返回值的形式====================
      //第一種方式 檢測(cè)線程結(jié)束  ----- iscompleted線程是否行完畢
      //func<int, int> threac = threadtestc;
      ////接收異步線程返回值
      //iasyncresult returnresult = threac.begininvoke(111, null, null);
      //while (!res.iscompleted)
      //{
      //  console.write(".");
      //  thread.sleep(10); //控制子線程的檢測(cè)頻率,(每10ms檢測(cè)一次)
      //}
      ////取得異步線程返回值
      //int result = threac.endinvoke(res);
      //console.writeline("iscompleted方式檢測(cè):" + result);
      //第二種方式 檢測(cè)線程結(jié)束  -----  1000ms沒(méi)結(jié)束就返回false,反之
      func<int, int> threac = threadtestc;
      //接收異步線程返回值
      iasyncresult returnresult = threac.begininvoke(111, null, null);
      bool isend = returnresult.asyncwaithandle.waitone(1000);
      int result = 0;
      if (isend)
      {
        result = threac.endinvoke(returnresult);
      }
      console.writeline("endinvoke()方式檢測(cè):" + isend +" "+ result);
      //第三種方式  檢測(cè)線程結(jié)束  ----- 通過(guò)回調(diào),檢測(cè)線程結(jié)束
      func<int,string, string> thread = threadtestd;
      //倒數(shù)第二個(gè)參數(shù),表示委托類型的參數(shù),(回調(diào)函數(shù))當(dāng)線程結(jié)束的時(shí)候會(huì)調(diào)用這個(gè)委托指向的方法
      //最后一個(gè)參數(shù),用來(lái)給回調(diào)函數(shù)傳遞數(shù)據(jù)
      iasyncresult asy = thread.begininvoke(111,"czhenya", oncallkey, thread);
      //改為lamdba表達(dá)式
      thread.begininvoke(111, "czhenya",(ar)=>{
        string res = thread.endinvoke(ar);
        console.writeline("在lamdba表達(dá)式中取得:"+res);
      },null);
      console.readkey();
    }
    static void oncallkey(iasyncresult ar)
    {
      func<int, string, string> thread = ar.asyncstate as func<int, string, string>;
      string res = thread.endinvoke(ar);
      console.writeline("在回調(diào)函數(shù)中取到的結(jié)果 :"+res);
    }
    /// <summary>
    /// 一般是比較耗時(shí)的操作方法
    /// </summary>
    static void threadtesta()
    {
      console.writeline("threatesta");
    }
    static void threadtestb(int num)
    {
      console.writeline("threatestb "+num);
    }
    static int threadtestc(int num)
    {
      console.writeline("threatestc");
      thread.sleep(100); //讓當(dāng)前線程休眠(暫停線程(參數(shù)單位:ms))
      return num;
    }
    static string threadtestd(int num,string str)
    {
      console.writeline("threatestd");
      return num +" "+ str;
    }
  }
}

運(yùn)行結(jié)果圖:

C#使用委托的形式調(diào)用線程代碼實(shí)例

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)服務(wù)器之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接

原文鏈接:https://blog.csdn.net/Czhenya/article/details/78225963

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 欧美日韩一区二区三 | 97精品国产一区二区三区 | 亚洲欧洲tv | 国产精品一区二区三区免费视频 | 色噜噜狠狠狠综合曰曰曰 | 日本激情网 | 日韩中文在线 | 久久国产福利 | 中文字幕在线精品 | 久久中文字幕av | 欧美日本韩国一区二区三区 | 成人av在线网 | 最新国产视频 | 亚洲国产区 | 国产精品久久久久久久午夜片 | 国产精品免费久久久久久 | 希岛爱理一区二区三区av高清 | 欧美在线亚洲 | 青草成人免费视频 | 懂色一区二区三区av片 | 久青草视频 | 欧美精品一区二区三区在线 | 亚洲狠狠丁香婷婷综合久久久 | 日韩一区二区三区福利视频 | 黑人巨大精品欧美黑白配亚洲 | 国产一区二区三区免费播放 | 欧美日韩中文字幕 | 亚洲二区在线播放 | 国产色黄视频 | 99精品国产高清在线观看 | 国产一区二区在线免费观看 | 91精彩视频在线观看 | 人人爽人人爽人人片av | www,四虎| 免费成人高清 | 91影院在线观看 | 日韩一区二区三区在线 | 99综合 | 大胆裸体gogo毛片免费看 | 蜜臀网| 亚洲自拍偷拍一区 |