如题。   数组有500W的长度, 我用100个线程去循环, 每个线程负责数组的一部分长度, 但是我想在所有线程执行完毕之后给个提示, 请问怎么判断100个线程都执行完毕了??

解决方案 »

  1.   

    整这些线程干哈啊?实在是看不出好歹。想要阻塞到所有线程结束,可以写WaitHandler.WaiAll(array);自己查一下资料吧。
      

  2.   

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading;namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                //构造500万个int
                var input = new int[100][];
                for (int i = 0; i < 100; i++)
                {
                    input[i] = new int[50000];
                }            //100个线程
                var threads = new Thread[100];            //启动,每个线程负责50000个元素
                for (var i = 0; i < 100; i++)
                {
                    var thisI = i;
                    threads[i] = new Thread(o =>
                    {
                        var count = input[thisI].Length;
                        for (var j = 0; j < count; j++)
                        {
                            input[thisI][j] = j;    //随便对元素做点什么
                        }
                    });                threads[i].Start();
                }            //等待所有线程结束
                for (var i = 0; i < 100; i++)
                {
                    threads[i].Join();
                }            //
            }
        }
    }