zoukankan      html  css  js  c++  java
  • C#多线程之所有线程执行完成后

    在多线程的应用开发过程中,我们可能会遇到某些任务需要等待所有线程执行完成后,再进行处理。搜了下关于这方面的解决方案,在这里不做细说。
    今天主要是想说下C#多线程中,可以利用ManualResetEvent对象,结合WaitHandle的WaitAll(...)方法,来实现所有线程执行完毕后的处理工作。
    大家可以进一步的了解下ManualResetEvent对象。
     
    List<ManualResetEvent> list = new List<ManualResetEvent>();
        for (int i = 0; i < 10; i++)
        {
            ManualResetEvent mre = new ManualResetEvent(false);
            System.Threading.Thread thread = new Thread((o) =>
            {
                Console.WriteLine("线程:{0}", System.Threading.Thread.CurrentThread.ManagedThreadId);
                ((ManualResetEvent)o).Set();
            });
            list.Add(mre);
            thread.Start(mre);
        }
        WaitHandle.WaitAll(list.ToArray());
        Console.WriteLine("所有线程完成任务!");
    

      

  • 相关阅读:
    进程总结
    三大流程
    canvas简介
    时钟
    vim
    马拉车
    模拟退火
    洛谷P2055假期的宿舍
    洛谷P2320鬼谷子的钱袋.
    洛谷P2278操作系统
  • 原文地址:https://www.cnblogs.com/deepalley/p/13216748.html
Copyright © 2011-2022 走看看