[英]I have a thread.pool and how can i make Main Thread wait until all task are completed?
嗨,我有下面的代码,我想知道如何让主线程等待线程池中的所有任务完成(我有动态的任务数量,并且最大分配了3个CPU内核)。 例如:我有5个作业来运行thread_pool最多可以并行执行3个。
{
for(i=0;i<n;i++)
{
TaskParams tp = new TaskParams(some params to be parsed to thread job);
ScanAllSectors objAllSectors = new ScanAllSectors();//object containing job function
ThreadPool.QueueUserWorkItem(objAllSectors.vScan, tp);
}
//i want to block it here
...//some other functions that uses the result from the code above`
}
...所以这就是为什么我要阻止main_thread直到线程池中的所有作业都完成,然后才能运行以下功能。
谢谢!
Parallel.ForEach(
ListOfStuff,
new ParallelOptions { MaxDegreeOfParallelism = 4 },
myStuffObj => DoAwesomeStuff(myStuffObj)
);
Console.WriteLine("All stuff done);
进一步阅读
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.