c# Parallel.For 并行编程 执行顺序测试

 因为有个for 实际执行结果尽管是按照for里边的顺序执行,但处理器让哪个分线程先执行,谁先处理完就不一定了.

对于要求结果需要先后顺序的,比如对text内容的操作, 用并行 Parallel.For 操作,不做进一步优化处理,那结果就不是想要的了,还要l用它的并行的功能所以要多程序进行改进,

我使用的做法是初始化buffer list 把list数组的顺序定下来,在循环中,把对应的值顺序赋值给list.    这样做可能写的有点死,根据实际应用调整启动循环的数量实际运行起来效果不错.

做了个简单的测试,同时赋值多个字符串,打印list字符串的值,

 string a = "sssssssssssssssssssssssssssssssssssssssssss";
            string b = "jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj";
            string c = "nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnmmm";
            string d = "ssssssssssssssssssssssssssssssssssssssssssssssssss";
            string o = "hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh";
            string f = "ttttttttttttttttttttttttttttttttttttttttttttttttttt";
            List<string> la = new List<string>();
            la.Add(a);
            la.Add(b);
            la.Add(c);
            la.Add(d);
            la.Add(o);
            la.Add(f);
            Parallel.For(0, 6 /*portion*/, (i, ParallelLoopState) =>
            {
              Console.WriteLine(la[i]) ;
            });

c# Parallel.For 并行编程 执行顺序测试_第1张图片

结果:

你可能感兴趣的:(c#)