我写了一个程序,扫描网络中的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# ×1