J4N*_*J4N 5 .net c# parallel-processing task-parallel-library thread-synchronization
我将不得不创建一个创建多个Task的并发软件,每个Task都可以生成另一个任务(也可以生成另一个Task,...).
我需要调用启动任务的方法阻塞:在完成所有任务和子任务之前不返回.
我知道有这个TaskCreationOptions.AttachedToParent属性,但我认为它不适合:
服务器至少会有8个内核,每个任务都会创建2-3 AttachedToParent个子任务,所以如果我设置了选项,我的印象是第二个子任务不会在第一个子任务的三个任务之前启动结束.所以我在这里将进行有限的多任务处理.
所以使用这个进程树:

我的印象是,如果我每次启动一个线程时都设置了AttachedToParent属性,那么在E,F,G完成之前B不会结束,所以C将在B完成之前启动,而我将只有3个活动线程而不是8个我可以有.
如果我没有放置AttachedToParent属性,A将很快完成并返回.
那么如果我没有设置这个选项,我怎么能确保我总是使用我的8个内核呢?