As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center作为指导。
7年前关闭。
我想知道就设计用于C#并行性的集合库而言,TPL和PLINQ有什么替代方案。
编辑:正如我所说的,我认为这个问题令人困惑。我正在寻找PLINQ以外的并行集合库。可能在PLINQ和TPL之上实现。我对纯函数库特别感兴趣。
7年前关闭。
我想知道就设计用于C#并行性的集合库而言,TPL和PLINQ有什么替代方案。
编辑:正如我所说的,我认为这个问题令人困惑。我正在寻找PLINQ以外的并行集合库。可能在PLINQ和TPL之上实现。我对纯函数库特别感兴趣。
最佳答案
并行性总是涉及多个线程(或计算机!这就是其中未涉及的内容:))来运行同一任务。平等地划分一组输入值并启动多个线程,每个线程都处理其中一个块是很容易的。一个额外的好处是能够从调用线程中读取结果/异常。在TPL和PLINQ中这都是可能的。
TPL和PLINQ的好处是您不必考虑这些细节即可使您的任务并行运行。在使程序正常工作之后,您可以调整这些库如何处理输入和输出,而几乎无需更改任何代码。例如,您可能不希望为每个线程提供相等数量的输入值,但是每次它们完成一个块时都按部分提供它们。
除非您不是真的追求真正的并行性,否则我真的不会知道缺少什么。
关于c# - C#中的任务并行库和PLINQ替代方案,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10064312/
10-09 22:13