重复
我有 X 个函数等待分配给线程池,线程池的最大线程数为 5。我需要找到一种解决方案,让主线程等待所有 X 个函数执行完毕。
代码如下所示:
for(int i=0;i<Rulecnt;i++)
{
int copy = count;
ds[copy] = dba.geData(ru[copy]);
dcont[copy] = new DataContainer(ru[copy], ds[copy], copy);
ThreadPool.QueueUserWorkItem(new WaitCallback(runRule[copy].performTask),dcont[count]);
}
我希望主线程等到所有函数都执行完毕。
一个简单的解决方案是创建 Rulecnt no of ManualResetEvents 并将它们传递给线程,并等待所有信号到达。
但是由于任何时候运行的最大线程数是 5,我们可以只使用 5 个 ManualResetEvents 吗?,如果可能的话怎么办?
或者如果有任何解决方案请解释一下?