动态开启多个并行执行线程

try
            {
                Stopwatch stopwatch = new Stopwatch();
                stopwatch.Start();
                DataBaseConnect();
                var n = 500;
                Thread[] downloadThread;
                ThreadStart startDownload = new ThreadStart(DownLoad);
                downloadThread = new Thread[n];
                for (int i = 0; i < n; i++)//开启指定数量的线程数
                {
                    downloadThread[i] = new Thread(startDownload);//指定线程起始设置
                    downloadThread[i].Start();//逐个开启线程
                    downloadThread[i].Join();//保证500个并行子线程执行完后才会执行主线程,不加这句直接就先走主线程耗时那个输出了
                }
                //Thread.Sleep(10000);
               
                stopwatch.Stop();
                Console.WriteLine($"耗时:{stopwatch.ElapsedMilliseconds},总数:{hhlist.Count}");
                Console.ReadKey();
            }
            catch (Exception ex)
            {

                throw ex;
            }
 static private void DownLoad()
        {
            List<PUNISH_ILLEGALVEHICLE_REALModel> list = new List<PUNISH_ILLEGALVEHICLE_REALModel>();
            using (IRepository<PUNISH_ILLEGALVEHICLE_REALModel> repository = RepositoryManager.CreateRepository<PUNISH_ILLEGALVEHICLE_REALModel>())
            {
                list = repository.GetModels().ToList();
                hhlist.AddRange(list);
            }
        }

猜你喜欢

转载自www.cnblogs.com/macT/p/11881060.html
今日推荐