C# 并行编程 之 PLINQ并行度的指定 和 ForAll的使用

概要

每台计算机上的物理内核数目不一样,在程序并行运行时并不是运用的内核数越多越好。某些情况下根据实际情况动态的配置会达到更好的效果。

ForAll可以看做是 .NetFramework提供的一种提高效率简化编程的一种可选的操作。它本身就是并行的,主要针对的是处理无序的集合。

PLINQ指定并行度

指定并行度的API:WithDegreeOfParallelism(N),并行度并不是越大越好,如果运算时把CPU都占满了,很有可能影响GUI对用户的响应。

示例代码:
代码中指定了不同的并行度,并且对他们的运算时间进行了比较 分别指定为2 和 4。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Diagnostics;

namespace Sample6_5_plinq_withdegreeofparallelism
{
    class Program
    {
        static int NUM_INTS = 500000000;

        static ParallelQuery<int> GenerateInputeData4Parallel()
        {
            return ParallelEnumerable.Range(1, NUM_INTS);
        }

        static void Main(string[] args)
        {
            var palTarget = GenerateInputeData4Parallel();
            Console.WriteLine("============================================================");
            Console.WriteLine("TEST PARALLEL LINQ:   Parallelism = 2");
            Console.WriteLine("===============
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值