Microsoft具有至少两个不同的approches到改进的支持的并行行动。

1)协调并发Runtime(CCR)其是Microsoft机器人技术工作室和 CCR&DSS工具包

2)任务并行数据库(TPL)(部分。净4.0现在在测试1释放)

我想知道如果任何人有经验,有了这两个不同的软件和会比较和对比他们吗?

有帮助吗?

解决方案

总的来说,两个框架具有互补的,但不同的目标。

在CCR提供原语并发进程之间的协调。协调是使一堆过程作为一个整体工作胶水 - 所以CCR提供原语为通过所谓的通道交换消息。过程可以等待消息到信道,或多个信道,或多个信道等等中的任何一个上到达。这是并发进程的协调特定的范例,效果很好。另请注意,是不是免费的 - 你必须在从微软单独购买

在TPL提供原语和基础设施,以 parallellize 半自动地计算或算法。一个最明显的原语有并行for循环 - 看起来有点像一个for循环,但试图并行执行环

因此,如果你有一堆过程,你想在一个更高的水平坐标比使用共享状态和锁,使用CCR的。如果你有一个计算密集的过程,你想多核机器上高效运行,使用TPL。

其他提示

这不是一个或/或场景。该CCR是支持特定的编程模式库。可以混用CCR和TPL这样的代码,这里是一个的Parallel.For内部的接收委托:

using System;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Ccr.Core;

namespace Demo
{
    public class Program
    {
        public static void Main(string[] args)
        {
            Dispatcher dispatcher = new Dispatcher();
            DispatcherQueue taskQueue = new DispatcherQueue("Demo", dispatcher);
            Port<int> portInt = new Port<int>();
            portInt.Post(Int32.Parse(args[0]));

            Arbiter.Activate(
                taskQueue,
                portInt.Receive(delegate(int count)
                {
                    Parallel.For(0, count, i =>
                    {
                        Console.Write(i.ToString() + " ");
                    });
                }
            ));
        }
    }
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top