.net 4.0并行处理体验
昨天终于把机器整理了一下,安装了vs2010。也来体验和学习一下。下面做了个并行计算测试的小实验,感觉很是不错。利用并行计算的特性,可对程序的性能有不少提高。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Normal();
ParallelCompute() ;
Console.Read();
}
private static void Normal()
{
Stopwatch timer = new Stopwatch();
timer.Start();
for (int i = 0; i < 20; i++)
{
GetData(i);
}
timer.Stop();
Console.WriteLine("一般处理:{0}", timer.ElapsedMilliseconds);
}
static void ParallelCompute()
{
Stopwatch timer=new Stopwatch();
timer.Start();
System.Threading.Tasks.Parallel.For(0, 20, (i) => { GetData(i); });
timer.Stop();
Console.WriteLine("并行处理:{0}", timer.ElapsedMilliseconds);
}
private static void GetData(long i)
{
Console.WriteLine("任务处理{0}:--{1}" , i,DateTime.Now);
System.Threading.Thread.Sleep(1000);
}
}
}
实验结果:
任务处理0:--2010/6/3 15:05:38
任务处理1:--2010/6/3 15:05:39
任务处理2:--2010/6/3 15:05:40
任务处理3:--2010/6/3 15:05:41
任务处理4:--2010/6/3 15:05:42
任务处理5:--2010/6/3 15:05:43
任务处理6:--2010/6/3 15:05:44
任务处理7:--2010/6/3 15:05:45
任务处理8:--2010/6/3 15:05:46
任务处理9:--2010/6/3 15:05:47
任务处理10:--2010/6/3 15:05:48
任务处理11:--2010/6/3 15:05:49
任务处理12:--2010/6/3 15:05:50
任务处理13:--2010/6/3 15:05:51
任务处理14:--2010/6/3 15:05:52
任务处理15:--2010/6/3 15:05:53
任务处理16:--2010/6/3 15:05:54
任务处理17:--2010/6/3 15:05:55
任务处理18:--2010/6/3 15:05:56
任务处理19:--2010/6/3 15:05:57
一般处理:20016
任务处理0:--2010/6/3 15:05:58
任务处理10:--2010/6/3 15:05:58
任务处理1:--2010/6/3 15:05:58
任务处理2:--2010/6/3 15:05:59
任务处理11:--2010/6/3 15:05:59
任务处理4:--2010/6/3 15:05:59
任务处理12:--2010/6/3 15:05:59
任务处理3:--2010/6/3 15:06:00
任务处理13:--2010/6/3 15:06:00
任务处理6:--2010/6/3 15:06:00
任务处理5:--2010/6/3 15:06:00
任务处理14:--2010/6/3 15:06:00
任务处理7:--2010/6/3 15:06:01
任务处理16:--2010/6/3 15:06:01
任务处理17:--2010/6/3 15:06:01
任务处理19:--2010/6/3 15:06:01
任务处理15:--2010/6/3 15:06:01
任务处理8:--2010/6/3 15:06:02
任务处理18:--2010/6/3 15:06:02
任务处理9:--2010/6/3 15:06:03
并行处理:6002
可以看到,相差还是比较大的。