首页 / C#开发 / 正文

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

26608 发布于: 2014-10-26 读完约需4分钟
今天给大家分享一种用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

版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。

上一篇: .NET(C#)开发中的SQL Server 2012通用轻松,高效分页查询SQL语句(可返回总记录数)

下一篇: C#/.NET根据枚举Name获取对应的Value值

本文永久链接码友网 » c#多线程中通过委托实现子线程执行完后通知主线程

分享扩散:

发表评论

登录用户才能发表评论, 请 登 录 或者 注册