gpt4 book ai didi

c# - Parallel.For 没有给出一致的结果

转载 作者:行者123 更新时间:2023-11-30 20:35:19 25 4
gpt4 key购买 nike

<分区>

当我运行下面的代码时,第 5 位和第 6 位的结果总是不同的:

public void TestParallel()
{
object locker = new object();
double grandTotal = 0;
Parallel.For( 1, 1000000,

() => 0.0, // Initialize the local value.

( i, state, localTotal ) => // Body delegate. Notice that it
{
return localTotal + Math.Sqrt( i ); // returns the new local total.
},

localTotal => // Add the local value
{
lock( locker ) grandTotal += localTotal; // to the master value.
}
);
Console.WriteLine( string.Format( "Grand Total = {0}", grandTotal ) );
}

我不知道为什么结果并不总是总计 = 666666166,458842。这是我像这样运行它时得到的:

double grandTotal = 0;
for ( int i = 1; i < 1000000; i++ )
{
grandTotal += Math.Sqrt( i ); // returns the new local total.
}
Console.WriteLine( string.Format( "Grand Total = {0}", grandTotal ) );

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com