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

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM