c#多线程中通过委托实现子线程执行完后通知主线程

C#开发 2014-10-26 17337阅读 0评论 0收藏 收藏本文
今天给大家分享一种用c#多线程中通过委托实现子线程执行完后通知主线程的方法,希望对你的开发有所帮助。 具体实现如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace MultiThreadsDelegateCallback
{
  class Program
  {
    static void Main(string[] args)
    {
      //程序开始的时候,把回调的方法给委托变量 
      CallBackDelegate cbd = CallBack;
      //启动线程 
      Thread th = new Thread(Fun);
      //开始线程,代入参数 
      th.Start(cbd);
      Console.ReadKey();
    }
    //定义一个委托实现回调函数 
    public delegate void CallBackDelegate(string message);

    
    //线程执行的方法 参数是个委托, 线程中参数需要用object类型. 
    public static void Fun(object o)
    {
      var i = 0;
      //这里是你的操作代码,循环,根据条件退出while
      while (i <= 10)
      {
        Console.WriteLine("子线程:{0}", i);
        Thread.Sleep(500);
        i++;
      }
      //把传来的参数转换为委托 
      var cbd = o as CallBackDelegate;
      //执行回调. 
      cbd("子线程已完成,这是子线程回调的信息");
    }
    //回调方法 
    private static void CallBack(string message)
    {
      //主线程报告信息,可以根据这个信息做判断操作,执行不同逻辑. 
      Console.WriteLine("Callback:{0}", message);
    }
  }
}
执行结果如图: multi-threads-delegate-callback

转载请注明:图享网 » c#多线程中通过委托实现子线程执行完后通知主线程

文章评论

获取验证码