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("所有线程完成任务!");
    

      

  • 相关阅读:
    [Postman]历史(8)
    [Postman]响应(7)
    [Postman]请求(6)
    [Postman]查找替换(5)
    ORA-02050故障诊断一例
    转 js实践篇:例外处理Try{}catch(e){}
    转 PHP
    HTML DOM getElementById() 方法
    地点选择
    9i 和 11 g 区别
  • 原文地址:https://www.cnblogs.com/deepalley/p/13216748.html
Copyright © 2011-2022 走看看