C#Parallel.Foreach相当于Python

我有96个txt文件需要处理。 现在我正在使用for循环并一次执行一个,这个过程非常慢。 生成的96个文件,不需要合并。 有没有办法使它们并行运行,ala Parallel.foreach在C#中? 当前代码:

for src_name in glob.glob(source_dir+'/*.txt'): outfile = open (...) with open(...) as infile: for line in infile: --PROCESS-- for --condition--: outfile.write(...) infile.close() outfile.close() 

希望此进程并行运行source_dir中的所有文件。

假设限制因素确实是处理而不是I / O,您可以使用joblib在多个CPU上轻松运行循环。

他们的文档中的一个简单示例 :

 >>> from math import sqrt >>> from joblib import Parallel, delayed >>> Parallel(n_jobs=2)(delayed(sqrt)(i ** 2) for i in range(10)) [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0]