Parallel.Invoke 任务并行库使用小计

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace ParallelInvokeApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            //借助 Invoke(),您只需表述出希望要哪些操作同时运行,运行时将处理所有线程调度详情,包括依据主计算机上的内核数自动缩放。——MSDN
            try
            {
                NormalInvoke();
                ParallelInvoke();
            }
            catch (Exception ex)
            {
                Console.WriteLine(string.Format("Exception Message:{0}", ex.Message.Trim()));
            }
            finally
            {
                Console.ReadKey();
            }
        }
        static void NormalInvoke()
        {
            Stopwatch _wactch = new Stopwatch();
            _wactch.Start();
            doSomeWork();
            doOtherWork();
            _wactch.Stop();
            Console.WriteLine(string.Format("NormalInvoke cost time:{0}", _wactch.ElapsedMilliseconds));
        }
        static void ParallelInvoke()
        {
            Stopwatch _wactch = new Stopwatch();
            _wactch.Start();
            Parallel.Invoke(doSomeWork, doOtherWork);
            _wactch.Stop();
            Console.WriteLine(string.Format("ParallelInvoke cost time:{0}", _wactch.ElapsedMilliseconds));
        }
        static void doSomeWork()
        {
            Console.WriteLine("doSomeWork....");
            Thread.Sleep(3000);
        }
        static void doOtherWork()
        {
            Console.WriteLine("doOtherWork....");
            Thread.Sleep(5000);
        }
    }
}


知识共享许可协议
《Parallel.Invoke 任务并行库使用小计》常伟华 创作。
采用 知识共享 署名-相同方式共享 3.0 中国大陆 许可协议进行许可。
  • 多说评论
  • 签名
  • 新浪微博
  • 默认评论
  • Tab Header 5

0 条评论 / 点击此处发表评论

Tab Content 5

开发技术


开发平台和工具

sitemap     159.76ms