我有一个 for 循环,我想与 PLINQ 的 Parallel.ForEach() 之类的东西并行化。
这里的关键是我调用来进行计算的 C++ 库显然不是线程安全的,因此,任何并行化的计划都需要跨多个进程这样做。
我正在考虑使用 WCF 创建一个“分发器”进程,“客户端”和多个“计算器”都可以连接到该进程并在队列中添加/删除项目,然后“计算器”将结果直接发送回客户端可以在收到它们时更新 gui。这种架构将允许我将尽可能多的“计算器”在线上,就像我拥有的处理器一样,我认为它甚至可以将它们带到多台计算机上,从而创建一个所有客户端都可以共享的潜在处理能力场。
我只是想知道是否有人有这样做的经验,以及是否有现有的应用程序块或框架可以用来为我构建它。PLINQ 在这个过程中完成它。有没有像 DPLINQ(分布式)之类的东西?
另外,如果那不存在,有人想对我提出的架构发表意见吗?有什么明显的陷阱吗?有没有人认为它会工作!?!?!?