• 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,否则不能使用。

  • 相关阅读:
    SSH和SSL比较
    SSL虚拟主机安全方案
    https在电子邮件安全解决方案
    centos tomcat安装
    laravel 添加第三方扩展库
    laravel-1 安装.配置
    centos7.0 vsftp配置
    centos 日常操作指令
    centos redis 安装
    centos php 扩展安装
  • 原文地址:https://www.cnblogs.com/huatao/p/4701605.html
Copyright © 2020-2023  润新知