当前位置:编程学习 > asp >>

.Net4.0 Parallel编程(二)Data Parallelism 中

在html">上篇文章中看过了使用Parrallel.For、Parael.Foreach在效率上给我们带来的提高。本文就来如何终止循环、线程局部变量 进行说明。

Thread-Local Variables

首先我们来看下线程局部变量,是的我们也许一直在想我们如何去定义一个线程局部变量呢。先看段顺序执行的代码:

 
01 [TestMethod()]
02 public void NormalSequenceTest()
03 {
04     int[] nums = Enumerable.Range(0, 1000000).ToArray();
05     long total = 0;
06     for (int i = 0; i < nums.Length;i++ )
07     {
08         total += nums[i];
09     }
10     Console.WriteLine("The total is {0}", total);
11 }

执行结果:

image

我们再来看这段代码:

 
01 [TestMethod()]
02 public void NormalParallelTest()
03 {
04     int[] nums = Enumerable.Range(0, 1000000).ToArray();
05     long total = 0;
06     Parallel.For(0,nums.Length,i=>
07     {
08         total += nums[i];
09     });
10     Console.WriteLine("The total is {0}", total);
11 }

执行结果:

image

再运行下:

image

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,