今天给大家分享一种用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); } } }执行结果如图:
版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。
发表评论
登录用户才能发表评论, 请 登 录 或者 注册