protected override void OnStart(String[] args)
{
ResultManager.PrepareCache();
ThreadPool.QueueUserWorkItem(ResultQueue.Process);
ThreadPool.QueueUserWorkItem(StatusUpdater.UpdateStatus);
ThreadPool.QueueUserWorkItem(GeneralQueue.RestartHungTests);
ThreadPool.QueueUserWorkItem(ResultManager.SyncroniseResultsTable);
ThreadPool.QueueUserWorkItem(GeneralQueue.RecoverLostResults);
ThreadPool.QueueUserWorkItem(BrowserTestStartInfo.FillQueues);
ThreadPool.QueueUserWorkItem(MailAppAccount.FillQueues);
}
这些任务中的每一个都在 Windows 服务的生命周期内运行。对于这种事情,我一直坚持使用 ThreadPool,我应该只是启动普通线程吗?我可以确定 ThreadPool 将有足够的线程来运行每个任务吗?如果我将 MaxThreads 设置为 7,我以后会因为这些线程永不中止而遇到问题吗?将其设置为更高的值是否安全?
编辑:
我总是希望所有 7 个线程同时运行,并且它们永远不会中止——我什至应该使用线程吗?还有其他更适合这种永久运行的任务吗?
每个任务每 x 分钟运行一次特定的方法。