C# 如何使用Task并行处理100多个文件

C# 如何使用Task并行处理100多个文件,c#,parallel-processing,task,C#,Parallel Processing,Task,我想以并行方式处理文件,在我尝试使用for循环创建处理每个文件的任务之前,这并不是一个理想的方法。因此,我希望控制要创建的任务数量,以及每个任务的完成情况,然后创建另一个新任务,直到所有文件都要更新。我该怎么做呢?不要并行处理文件,因为硬盘在文件之间切换会浪费很多时间。除非您有物理上不同的硬盘,例如SSD C:驱动器上有5个文件,另一个非SSD磁盘上有5个文件,否则您可以同时处理两个文件,因为每个硬盘都有自己的探测器。我不推荐使用它。异步处理在很多方面都很好,但是有一些限制,一次处理100个文件

我想以并行方式处理文件,在我尝试使用for循环创建处理每个文件的任务之前,这并不是一个理想的方法。因此,我希望控制要创建的任务数量,以及每个任务的完成情况,然后创建另一个新任务,直到所有文件都要更新。我该怎么做呢?

不要并行处理文件,因为硬盘在文件之间切换会浪费很多时间。除非您有物理上不同的硬盘,例如SSD C:驱动器上有5个文件,另一个非SSD磁盘上有5个文件,否则您可以同时处理两个文件,因为每个硬盘都有自己的探测器。

我不推荐使用它。异步处理在很多方面都很好,但是有一些限制,一次处理100个文件远远超出了正常的限制。还要注意的是,实际的线程管理(您必须处理)是极低级别的,并且在很大程度上是由框架抽象出来的。我建议一种不同于您要求的方法(如果没有更多信息,我无法建议这种方法)。您能告诉我不同的方法吗?处理每个文件的工作在CPU时间方面是否昂贵?文件是.c文件。我想开发一个工具,它可以通过调用编译器(比如CodeWarrior)而不是使用makefile来编译每个文件(.c,.h)。这样我可以提高项目的编译速度。