CountdownEvent达到主线程阻塞直到所有子线程结束后再执行的效果
CountdownEvent不可重用
FixedThreadPool threadPool = FixedThreadPool.Create(int.Parse(AppSettings.WordFileTransPoolCoreSize));
CountdownEvent @event = new CountdownEvent(pDictValue.Count);
foreach (var (key, runDict) in pDictValue)
{
threadPool.Execute(() =>{
try{
// todo
}
catch (Exception e) {
}
finally{
@event.Signal();
}
)
}
@event.Wait();
threadPool.Shutdown();