threadEndLog = new Thread(new ThreadStart(CheckThreadPool));
threadEndLog.Start();
//检查线程池的方法
private void CheckThreadPool()
{
int workerThreads = 0;
int maxWordThreads = 0;
int compleThreads = 0;
ThreadPool.GetAvailableThreads(out workerThreads, out compleThreads);
ThreadPool.GetMaxThreads(out maxWordThreads, out compleThreads);
//当可用的线数与池程池最大的线程相等时表示线程池中所有的线程已经完成
if (workerThreads == maxWordThreads)
{
//当执行此方法后CheckThreadPool将不再执行
Log.WriteEndLog();
threadEndLog.Abort();
}
else
CheckThreadPool();
}
}
threadEndLog.Start();
//检查线程池的方法
private void CheckThreadPool()
{
int workerThreads = 0;
int maxWordThreads = 0;
int compleThreads = 0;
ThreadPool.GetAvailableThreads(out workerThreads, out compleThreads);
ThreadPool.GetMaxThreads(out maxWordThreads, out compleThreads);
//当可用的线数与池程池最大的线程相等时表示线程池中所有的线程已经完成
if (workerThreads == maxWordThreads)
{
//当执行此方法后CheckThreadPool将不再执行
Log.WriteEndLog();
threadEndLog.Abort();
}
else
{//每分检次一次线程池的状态
Thread.Sleep(60000);CheckThreadPool();
}
}