小编Rah*_*n47的帖子

推出成千上万的Backgroundworkers的正确方法?

我写了一个程序,扫描网络中的10.000台计算机的正常运行时间,活动用户,空闲时间和ping.该计划表现很好.主要是在大约3分钟内检查所有计算机.但最近,该计划一直在冻结.它完成了所有任务,但不会退出.我像这样启动所有BackGroundWorkers:

foreach (DataRow computer in computerTable.Rows)
                {
                    //Added check to see if computer is in inputlist for inputfilemode
                    if (!inputFileMode || (inputFileMode && computerList.Contains(computer["ComputerName"].ToString())))
                    {
                        BackgroundWorker bw = new BackgroundWorker();
                        //Determine background jobs
                        bw.DoWork += bw_DoWork;
                        bw.RunWorkerCompleted += bw_RunWorkerCompleted;

                        bw.RunWorkerAsync(computer); //Start background worker
                        numberOfWorkers++;
                    }
                }


                int lastNr = 0;
                int skipHangingJobsCounter = 0;
                do
                {
                    lastNr = numberOfWorkers;
                    Thread.Sleep(1000);

                    Console.WriteLine("Tijd: " + DateTime.Now.ToString("yyyyMMdd-HH:mm:ss") + " #Jobs queued: " + numberOfWorkers.ToString() + " Jobs/sec: " + (lastNr - numberOfWorkers).ToString() + …
Run Code Online (Sandbox Code Playgroud)

c#

2
推荐指数
1
解决办法
60
查看次数

标签 统计

c# ×1