号外号外: 原[图享网]更名为 码友网(codedefault.com) 啦,感谢大家一路上的陪伴与支持。代码的世界里,码友网与大家一起同行!

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

C#开发 作者: Rector 18123阅读 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#多线程中通过委托实现子线程执行完后通知主线程

发布于: 2014-10-26 21:29:09
分享扩散:

文章评论

获取验证码