Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用Parallel.Foreach的最短项目处理时间_C#_.net_Multithreading_Parallel Processing - Fatal编程技术网

C# 使用Parallel.Foreach的最短项目处理时间

C# 使用Parallel.Foreach的最短项目处理时间,c#,.net,multithreading,parallel-processing,C#,.net,Multithreading,Parallel Processing,假设我有一个当前在普通foreach循环中处理的项目列表。假设项目数量明显大于核心数量。作为一个经验法则,每个项目应该花费多少时间,然后我应该考虑将for循环重构成一个并行?p> 这是并行编程的核心问题之一。为了得到准确的答案,你仍然需要在准确的情况下进行测量 然而,第三方物流的最大优势是,treshold比以前小得多,而且当你的工作项目太小时,你不会受到惩罚(那么多) 我曾经用两个嵌套的循环做过一个演示,我想展示的是,只有外部的循环应该并行运行。但是演示没有显示将两者转换为并行.For()的一

假设我有一个当前在普通foreach循环中处理的项目列表。假设项目数量明显大于核心数量。作为一个经验法则,每个项目应该花费多少时间,然后我应该考虑将for循环重构成一个并行?p> 这是并行编程的核心问题之一。为了得到准确的答案,你仍然需要在准确的情况下进行测量

然而,第三方物流的最大优势是,treshold比以前小得多,而且当你的工作项目太小时,你不会受到惩罚(那么多)

我曾经用两个嵌套的循环做过一个演示,我想展示的是,只有外部的循环应该并行运行。但是演示没有显示将两者转换为并行.For()的一个显著缺点

因此,如果循环中的代码是独立的,那么就使用它


#items/#cores比率不是很相关,TPL将划分范围并使用“适当”数量的线程

在一个大型数据处理项目中,我正在处理我使用的任何循环,其中包含两个或三个以上的语句,这大大受益于Parallel.Foreach。如果您的循环正在处理的数据是原子数据,那么与并行库提供的巨大好处相比,我看不出有什么缺点