.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

 

可以看到,相差还是比较大的。

posted @ 2010-06-03 15:07  greystar  阅读(187)  评论(0编辑  收藏  举报