程序了开 了4个子线程.各自独立.子线程根据输入信号判断while循环,符合条件退出while循环,该子线程就算运行结束了,可是主线程怎么知道他执行完了呢? 难道用一个时间触发器,多少时间检测一下各个进程的运行情况?
问题补充:
难道用一个时间触发器,多少时间检测一下各个线程的运行情况?
满意回答
定义一个委托实现回调函数 public delegate void CallBackDelegate(string message); 程序开始的时候 //把回调的方法给委托变量 CallBackDelegate cbd = CallBack; //启动线程 Thread th = new Thread(Fun); th.Start(cbd);//开始线程,代入参数 //线程执行的方法 参数是个委托, 线程中参数需要用object类型. public void Fun(object o) { //这里是你的操作代码,循环,根据条件退出while while(true) { } //把传来的参数转换为委托 CallBackDelegate cbd = o as CallBackDelegate; //执行回调. cbd("这个线程传回的信息"); } //回调方法 private void CallBack(string message) { //主线程报告信息,可以根据这个信息做判断操作,执行不同逻辑. MessageBox.Show(message); }