首页 > 其他 > 详细

并行计算

时间:2017-12-12 11:40:14      阅读:186      评论:0      收藏:0      [点我收藏+]

一、Parallel.Invoke执行多个方法

没有特定执行顺序,利用cpu多核并发执行

  #region Parallel.Invoke
            Stopwatch watch = new Stopwatch();
            watch.Start();
            Parallel.Invoke(Pinvoke1, Pinvoke2);
            watch.Stop();
            Console.WriteLine("Parallel run " + watch.ElapsedMilliseconds + " ms");
            watch.Reset();
            watch.Start();
            Pinvoke1();
            Pinvoke2();
            watch.Stop();
            Console.WriteLine("Normal run " + watch.ElapsedMilliseconds + " ms");
            Console.ReadKey();

            #endregion Parallel.Invoke
  private static void Pinvoke1()
        {
            Thread.Sleep(3000);
            Console.WriteLine("Pinvoke1 ThreadId="+Thread.CurrentContext.ContextID);
        }

        private static void Pinvoke2()
        {
            Thread.Sleep(2000);
            Console.WriteLine("Pinvoke2 ThreadId=" + Thread.CurrentContext.ContextID);
        }

 结果:

技术分享图片

二、Parallel.For  有空再接着写

并行计算

原文:http://www.cnblogs.com/entclark/p/8026815.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!