foreach (Agent agent in AgentList)
{
// I want to start a new thread for each of these
agent.DoProcessLoop();
}
---
public void DoProcessLoop()
{
while (true)
{
// do the processing
// this is things like check folder for new files, update database
// if new files found
}
}
一个线程池是否是最佳解决方案,还是有更适合的东西?
更新:感谢所有出色的答案!我想详细解释一下用例。许多代理可以上传文件到一个文件夹中。每个代理都有自己的文件夹,可以将资产(csv文件、图像、pdf)上传到其中。我们的服务(它应该是在他们上传资产的服务器上运行的Windows服务,放心,我很快就会回来问一些关于Windows服务的问题 :))将不断检查每个代理的文件夹是否有新的资产,如果有,数据库将被更新,并为其中一些静态HTML页面创建。由于他们可能需要花费一些时间来上传所有内容,我们希望他们能够几乎立即看到他们上传的更改,因此认为每个代理一个线程是一个好主意,因为没有代理需要等待其他人完成(而且我们有多个处理器,希望充分利用它们的能力)。希望这解释得清楚!
谢谢,
Annelie