Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.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
Parallel processing .NET4.0并行扩展_Parallel Processing - Fatal编程技术网

Parallel processing .NET4.0并行扩展

Parallel processing .NET4.0并行扩展,parallel-processing,Parallel Processing,我有一个方法,可以动态地对每个用户控件(.ascx)进行多次调用。这些调用依次为每个用户控件进行大量计算(3-4秒)。我能够添加一个并行。通过用户控件进行循环,并将时间缩短到5-6秒 Parallel.For(each user control ) { compute(); } List<int> compute() { for(i=0; i<999999;i++) {.....} } Parallel.For(每个用户控件) { comp

我有一个方法,可以动态地对每个用户控件(.ascx)进行多次调用。这些调用依次为每个用户控件进行大量计算(3-4秒)。我能够添加一个并行。通过用户控件进行循环,并将时间缩短到5-6秒

Parallel.For(each user control )
{
compute();
}

List<int> compute()
{

     for(i=0; i<999999;i++)
          {.....}

}
Parallel.For(每个用户控件)
{
compute();
}
列表计算()
{

对于(i=0;i这将取决于控制的数量

如果您有许多控件(超过2倍数量的CPU内核),嵌套Parallel.For循环可能会导致运行速度大大降低,因为您增加了无法解决的开销,因为您已经最大化了系统的并发性

但是,如果您只有一个或两个控件,并且系统中有4个或8个或更多内核,那么嵌套可能是有益的

如果有疑问,我建议尝试并分析它是否有用。只需确保在不同的硬件集上分析(以匹配您的部署目标),因为并发分析非常依赖于硬件

Parallel.For(each user control )
{
compute();
}

List<int> compute()
{

    Parallel.For(i=0; i<999999; ()=>
          {.....}

}