为了账号安全,请及时绑定邮箱和手机立即绑定

C#多线程:所有的线程执行完毕之后,需要 做一个处理,但是如何知道所有线程执行完毕了呢?

C#多线程:所有的线程执行完毕之后,需要 做一个处理,但是如何知道所有线程执行完毕了呢?

慕桂英546537 2018-11-28 18:09:33
我自己想用 ArrayList 把 每个 进程都装起来 ,然后 在每个进程里面 进行 for 循环  判断 ArrayList 里面的 进程状态可是这样 无法使用Response 了,而且 程序 也变得 乱七八糟
查看完整描述

2 回答

?
HUH函数

TA贡献1836条经验 获得超4个赞

你可以用WaitHandle确保所有线程都执行完毕。示例代码:

 AutoResetEvent[] watchers = new AutoResetEvent[10];
 for (int i = 0; i < 10; i++)
 {
       var j = i;
       watchers[j] = new AutoResetEvent(false);
       
       //启动10个线程输出10个数字
       new Thread(() =>
       {
            Console.WriteLine(j);
            watchers[j].Set();     //线程执行完的时候通知
       }).Start();
 }

 WaitHandle.WaitAll(watchers);  //确保所有线程都执行完毕


查看完整回答
反对 回复 2018-12-02
?
aluckdog

TA贡献1847条经验 获得超7个赞

Response 好像只能在一个线程中使用,可能你要将要输出的东西放在一个地方,再使用主线程的Response

查看完整回答
反对 回复 2018-12-02
  • 2 回答
  • 0 关注
  • 3606 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信