zoukankan      html  css  js  c++  java
  • Parallel与PLINQ简单示例

        Parallel是对Task用法的简化,含有Parallel.For、Parallel.ForEach、Parallel.Invoke三个静态方法。PLINQ是并行版本的LINQ。下面给出Parallel和PLINQ的简单示例及注意事项。

        一、简单示例

        1、Parallel.For

                int[] nums = new[] { 1, 2, 3, 4 };
                Parallel.For(0, nums.Length, i =>
                {
                    Console.WriteLine("下标:{0},值:{1}", i, nums[i]);
                });

        2、Parallel.ForEach

                var ltModel = new List<UserInfo>();
                for (int i = 1; i <= 5; i++)
                {
                    var item = new UserInfo { No = i, Name = "名字" + i };
                    ltModel.Add(item);
                }
                Parallel.ForEach(ltModel, item =>
                {
                    Console.WriteLine("No:{0}, Name:{1}", item.No, item.Name);
                });

        3、Parallel.Invoke

                var ltTask = new List<Action>();
                for (int i = 1; i <= 5; i++)
                {
                    int j = i;
                    ltTask.Add(() =>
                    {
                        Console.WriteLine("启动任务" + j);
                    });
                }
                Parallel.Invoke(ltTask.ToArray());

        4、PLINQ

                var ltNum = new List<int>() {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
                var resultNum = (from n in ltNum.AsParallel() where n>=3 orderby n descending select n).ToArray();
                foreach (var item in resultNum)
                {
                    Console.WriteLine("Num: {0}", item);   
                }

        二、注意事项

        如果对集合的逻辑顺序没有要求,可以用Parallel和PLINQ,否则不能使用。

  • 相关阅读:
    Maven------使用maven新建web项目出现问题 项目名称出现红色交叉
    Strut2------获取界面返回的session,application,parameter
    js之可迭代对象
    js字符串
    js之strict模式
    js系列之js简介
    python私有成员
    python之偏函数
    python之装饰器
    python之匿名函数
  • 原文地址:https://www.cnblogs.com/huatao/p/4701605.html
Copyright © 2011-2022 走看看