我是线程新手,想做类似这个问题的事情:
Speed up loop using multithreading in C# (Question)
但是,我不确定这个解决方案对我来说是否是最好的,因为我希望它们继续运行并且永远不会完成. (对于那个问题,我也使用.net 3.5而不是2.0.)
我想做这样的事情:
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 } }
ThreadPool是最好的解决方案还是有更适合这种情况的东西?
更新:感谢所有伟大的答案!我以为我会更详细地解释用例.许多代理可以将文件上载到文件夹.每个代理都有自己的文件夹,可以将资源上传到(csv文件,图像,pdf).我们的服务(它意味着是在他们上传资产的服务器上运行的Windows服务,请放心我将很快回来关于Windows服务的问题:))如果有任何新资产,将继续检查每个代理的文件夹,如果有,数据库将被更新,并为其中一些创建静态html页面.由于他们可能需要一段时间才能上传所有内容,我们希望他们能够立即看到他们上传的更改,我们认为每个代理的线程都是个好主意,因为没有代理人需要等待其他人来完成(我们有多个处理器,所以想要使用它们的全部容量).希望这能解释它!
谢谢,
Annelie