214得票7回答
何时应该处理CancellationTokenSource?

CancellationTokenSource类是可释放的。在Reflector中快速查看证明了KernelEvent的使用,这是一个(很可能是)非托管资源。 由于CancellationTokenSource没有终结器,如果我们不处理它,垃圾回收程序也不会这样做。 另一方面,如果您查看MS...

155得票4回答
Parallel.ForEach()和foreach(IEnumerable<T>.AsParallel())的区别

额,我正在尝试使用反编译工具在BCL中找到这两个方法,但是找不到它们。这两个代码片段有什么区别? A: IEnumerable&lt;string&gt; items = ... Parallel.ForEach(items, item =&gt; { ... }); B: ...

70得票2回答
响应式框架、PLINQ、TPL和并行扩展如何相互关联?

至少自.NET 4.0发布以来,微软似乎在支持并行和异步编程方面投入了大量精力,很多围绕这方面的API和库出现了。特别是最近到处都提到以下几个花哨的名字: 反应式框架(Reactive Framework), PLINQ(Parallel LINQ), TPL(Task Parallel ...

41得票5回答
PLINQ究竟是什么?

PLINQ 是在 .NET 4.0 Framework 中作为 LINQ 的扩展添加的。 它是什么? 它解决了哪些问题? 什么时候使用它,什么时候不使用?

38得票3回答
AsParallel()的最大并行度

在使用Parallel.ForEach时,我们可以定义并行选项并设置最大并行度,例如: Parallel.ForEach(values, new ParallelOptions {MaxDegreeOfParallelism = number}, value = &gt; { // ...

25得票1回答
在PLINQ中,.AsSequential()和.AsOrdered()有什么区别?

我似乎无法理解AsSequential和AsOrdered之间的区别。我查看了MSDN上对这两者的文档,并搜索了互联网上的示例,但我只是一个简单的鞋匠,无法明确理解发生了什么。 如果可能的话,有人能否解释一下何时使用AsSequential与AsOrdered,必要时解释结果会有什么不同?

24得票2回答
在并行运行一个简单的LINQ查询

我对LINQ和PLINQ还很陌生。通常我在很多情况下只使用循环和List.BinarySearch,但我正在尝试摆脱这种思维方式。public class Staff { // ... public bool Matches(string searchString) { /...

23得票5回答
如何正确地并行处理大量依赖I/O的任务

我正在构建一个控制台应用程序,需要处理大量的数据。 基本上,该应用程序从数据库中获取引用。对于每个引用,解析文件内容并进行一些更改。这些文件是HTML文件,并且该过程使用正则表达式替换来做繁重的工作(查找引用并将其转换为链接)。然后将结果存储在文件系统中并发送到外部系统。 如果我按顺序总结...

21得票2回答
在LINQ查询中何时调用.AsParallel()?

问题在LINQ查询中,我可以正确地(编译器不会抱怨)这样调用.AsParallel(): (from l in list.AsParallel() where &lt;some_clause&gt; select l).ToList(); 或者像这样: (from l in list ...

19得票1回答
Parallel.ForEach需要使用AsParallel()吗?

ParallelEnumerable有一个静态成员AsParallel。如果我有一个IEnumerable&lt;T&gt;并想使用Parallel.ForEach,这是否意味着我应该始终使用AsParallel? 例如,下面两个示例(其他一切相等)都正确吗? 不使用AsParallel:...