当前位置:编程学习 > C#/ASP.NET >>

【求助】调用Parallel.For/Foreach方法时如何使每一个body独立运行不共享中间变量?

先看一下例子:
      static void Main(string[] args)
        {
            long total = 0;

            Parallel.For<Parameter>(
                0, 
                10, 
                () =>
                {
                    Parameter a = new Parameter(); ;
                    return a;
                }, 
                (j, loop, abc) =>
                {
                    abc.a = j;
                    abc.b = j;
                    abc.c = abc.a + abc.b;
                    return abc;
                },
                (x) => total += x.c
            );        

            Console.WriteLine("The total is {0}", total);

            Console.ReadKey();



        }

        struct Parameter
        {
            public int a;
            public int b;
            public int c;
        }


理想的运算结果应该为:90
但实际的运算结果却是16、18、22...每次运算结果都不一样 --------------------编程问答-------------------- 自己顶上去!等待求解!!!
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,