编辑:我正在开发与.NET 3.5。如何在.NET中每次启动最多X个线程?
我有一个程序,DoSomething。 我必须启动它X次。我想使用线程..但我想每次最多使用5个线程。 所以,我可以写这样的:
for i=0 to TimesToDo -1
Dim t as new Thread = new Thread(Addressof MyProcedure)
t.Start()
if TotalThread > 5 then Wait()
next i
确定这是“伪代码”。在.NET中可能吗? 其他一些问题是:我如何获得我的线程运行的数量?是否有可能获得结束线程的“信号”?
谢谢
检查这个帖子http://stackoverflow.com/questions/444627/c-thread-pool-limiting-threads – Samich
在考虑等待,值得一提的是'Thread.Join'(http://msdn.microsoft.com/zh-cn/library/95hbf2ta.aspx),它会阻止调用线程,直到线程终止,同时继续执行标准COM和SendMessage抽取。“*不幸的是,这并不直接适用于你的问题,因为等待每个线程会严重限制并行性。 – Rob
线程池管理器已经做到了。首选,因为它不会选择5,它选择一个在机器上运行良好的数字,匹配的CPU核心数量。 –