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

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

C#教程

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

C#子線程執(zhí)行完后通知主線程的方法

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

其實這個比較簡單,子線程怎么通知主線程,就是讓子線程做完了自己的事兒就去干主線程的轉(zhuǎn)回去干主線程的事兒。

那么怎么讓子線程去做主線程的事兒呢,我們只需要把主線程的方法傳遞給子線程就行了,那么傳遞方法就很簡單了委托傳值嘛;

下面有一個例子,子線程干一件事情,做完了通知主線程

public class Program
  {
    //定義一個為委托
    public delegate void Entrust(string str);
    static void Main(string[] args)
    {
      Entrust callback = new Entrust(CallBack); //把方法賦值給委托
      Thread th = new Thread(Fun);
      th.IsBackground = true;
      th.Start(callback);//將委托傳遞到子線程中
      Console.ReadKey();
    }
    private static void Fun(object obj) {
      //注意:線程的參數(shù)是object類型
      for (int i = 1; i <= 10; i++)
      {
        Console.WriteLine("子線程循環(huán)操作第 {0} 次",i);
        Thread.Sleep(500);
      }
      Entrust callback = obj as Entrust;//強轉(zhuǎn)為委托
      callback("我是子線程,我執(zhí)行完畢了,通知主線程");
      //子線程的循環(huán)執(zhí)行完了就執(zhí)行主線程的方法
    }
    //主線程的方法
    private static void CallBack(string str) {
      Console.WriteLine(str);
    }
  }

上面就是一個通過委托進(jìn)行向主線程傳值(也就是通知主線程)的過程,上面我們是自己定義了一個委托,當(dāng)然我們也可以使用.NET為我們提供的Action<>和Fun<>泛型委托來處理,就像這樣

public class Program
  {
    //定義一個為委托
    public delegate void Entrust(string str);
    static void Main(string[] args)
    {
      Action<string> callback = ((string str) => { Console.WriteLine(str); });
      //Lamuda表達(dá)式
      Thread th = new Thread(Fun);
      th.IsBackground = true;
      th.Start(callback);
      Console.ReadKey();
    }
    private static void Fun(object obj) {
      for (int i = 1; i <= 10; i++)
      {
        Console.WriteLine("子線程循環(huán)操作第 {0} 次",i);
        Thread.Sleep(500);
      }
      Action<string> callback = obj as Action<string>;
      callback("我是子線程,我執(zhí)行完畢了,通知主線程");
    }

  }
 //上面的Lamuda表達(dá)式也可以回城匿名函數(shù)
 //Action<string> callback = delegate(string str) { Console.WriteLine(str); };

下面是運行結(jié)果

以上這篇C#子線程執(zhí)行完后通知主線程的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持我們。

上一篇:詳解MongoDB for C#基礎(chǔ)入門

欄    目:C#教程

下一篇:C# this關(guān)鍵字的四種用法

本文標(biāo)題:C#子線程執(zhí)行完后通知主線程的方法

本文地址:http://mengdiqiu.com.cn/a1/C_jiaocheng/6131.html

網(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)所有