据我了解,并行 API 在内部使用线程池,它们将项目排队以进行并行处理,但是,当我使用 SOS 调试器检查一个这样的并行循环的执行时,我的理解是,如果我有 10 个任务排队然后所有这些可能不会并行运行,CLR 将决定为要执行的给定任务调度多少线程,因此它可能是 4 或 5 或 6(每次执行中的数量不同)
但是,如果我的总任务数不是很高,比如 10,并且我希望它们全部并行运行,因为它们都是长时间运行的,那么最好将它们放在传统线程上,这将确保每个任务有 1 个线程并且它们都是并行的如果任务数量是 100 这样的好数字,那么使用 Parallel 或 Threadpool 是一个实用的解决方案,因为我们不想每个进程调用 100 个单独的线程
请分享您的观点,我了解 Parallel API 的好处,使完整的 Parallel 编程非常容易实现,但这里我的目标不同