问题标签 [parallel-extensions]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1823 浏览

vb.net - 使用并行扩展和 VB.net 传递值

我正在寻找如何在 VB.net 中使用 Parallel Extensions 执行以下操作的示例。

我遇到困难的地方是如何将我的参数 InputValueforWork 传递给任务

欢迎任何建议和可能的编码示例。

安德鲁

0 投票
3 回答
371 浏览

.net - 为什么是 LazyInit仅限于引用类型

我有一个要使用的伪实时数据处理应用程序,LazyInit<double>因此我不进行不需要的计算,而是LazyInit<T>将 T 限制为类。我可以解决它,但我显然不希望这样做。

有人知道这是为什么吗?

0 投票
1 回答
876 浏览

c# - 并行扩展:帮助我理解 LazyInit

面向未来读者的更新:当 .NET 4 发布时,LazyInit<T>CTP 将被重命名为Lazy<T>并将从结构更改为类,因此几乎不会适用,除非作为可变结构可能存在问题的说明如果你不小心。

我一直在 Parallel Extensions June CTP 中尝试使用 LazyInit,我希望下面的代码会打印一千次相同的 Guid,但它会打印出一千个不同的 Guid。显然,我在这里遗漏了一些关于 LazyInit 应该如何工作的明显内容,如果有人能指出它是什么,我将不胜感激。

0 投票
3 回答
360 浏览

.net - 我可以使用 Microsoft Parallel Extensions to .NET Framework 3.5(2008 年 6 月社区技术预览版)开发生产代码吗?

是否有反对使用此 CTP 的建议?不稳定吗?

0 投票
4 回答
762 浏览

java - Java中等效的并行扩展

我有一些在 .Net 开发中使用并行扩展的经验,但我正在考虑用 Java 做一些工作,这将受益于一个易于使用的并行库。JVM 是否提供与并行扩展类似的工具?

0 投票
1 回答
1755 浏览

.net - NUnit 测试 PLINQ 代码后如何防止 AppDomainUnloadedException?

如何诊断和最小化或预防AppDomainUnloadedException

NUnit 2.5.2AppDomainUnloadedException在涉及 PLINQ 的长时间(>10 秒)测试后始终抛出异常。

早在 2008 年 7 月,Stephen Toub 说

是的,CTP 中的调度程序不能很好地处理线程中止,当正在关闭的域中存在实时调度程序时,这经常会导致进程崩溃(因为 AppDomain 关闭会导致该域中具有堆栈帧的所有线程上的线程中止)。我们正在努力为未来的版本加强这一点。

我尝试了许多解决方法,包括:

  • 以单独的方法运行测试以消除杂散引用
  • 指定/domain:None为 NUUnit 参数
  • 从中删除legacyUnhandledAppDomainPolicy元素nunit-console.exe.config

我不能降级 NUnit 以降低竞争条件的几率,因为我需要 PLINQ 来使我的参数测试更快。没有问题的 NUnit 版本不支持参数测试。

0 投票
4 回答
8171 浏览

c# - 在 Parallel.ForEach 中使用哈希表?

我有一个 Parallel.ForEach 循环在体内运行密集操作。

该操作可以使用 Hashtable 来存储值,并且可以重复用于其他连续的循环项。我在密集操作完成后添加到Hashtable中,下一个循环项可以在Hashtable中查找并​​重用对象,而不是再次运行密集操作。

但是,因为我使用的是 Parallel.ForEach,所以存在一个不安全的问题,导致 Hashtable.Add 和 ContainsKey(key) 调用不同步,因为它们可能并行运行。引入锁可能会导致性能问题。

这是示例代码:

TPL 库中必须有一些 API,属性设置,可以处理这种情况。有没有?

0 投票
2 回答
679 浏览

.net - 如何使 PLINQ 在 .NET 4.0 beta 2 中产生更多并发线程?

在以前版本的 Parallel Extensions 中,您可以设置线程数:

但现在这种重载不再可用。现在怎么办?

0 投票
2 回答
2120 浏览

c# - 为什么 TaskFactory.StartNew 方法不是通用的?

在 .NET 4.0 中使用 TPL 启动新的仅副作用任务(即:不返回结果的任务)的惯用方式是使用以下 API:

但是为什么这个 API 的签名不是这样的

或者像这样

技术原因还是其他原因?

0 投票
2 回答
3771 浏览

c# - Parallel.ForEach 没有启动新线程

Parallel.ForEach 没有启动新线程

大家好,我们有一个非常 IO 密集型操作,我们使用 Microsoft 的 .NET Framework 的 Parallel Extensions 中的 Parallel.ForEach 编写。我们需要删除大量文件,我们将要删除的文件表示为列表的列表。每个嵌套列表中有 1000 条消息,我们有 50 个这样的列表。这里的问题是,当我之后查看日志时,我只看到一个线程在我们的 Parallel.ForEach 块内执行。

代码如下所示:

我用更简单的数据结构和没有 IO 逻辑编写了一些示例代码,我可以看到在 Parallel.ForEach 块中执行了几个不同的线程。我们在上面的代码中对 Parallel.ForEach 做了什么不正确的事情吗?可能是列表列表导致它出错,或者 IO 操作是否存在某种线程限制?