问题标签 [parallel.foreach]

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 投票
1 回答
2266 浏览

vb.net - VB.NET 在 Parallel.for Synclock 内的嵌套循环中运行 sum 丢失信息

下面是我能够开发的最佳表示,用于计算嵌套在 VB.NET(Visual Studio 2010,.NET Framework 4)中的 Parallel.for 循环内的循环内的运行总和。请注意,当在屏幕上显示“总和”的结果时,两个总和之间存在细微差别,因此在并行化变体中会丢失信息。那么信息是如何丢失的,发生了什么?任何人都可以提供一些关于在这种情况下保持流动总和的方法的“显微外科手术”吗?(注意 Parallel.for 的新用户:我通常不使用从零开始的方法,因此在 Parallel.for 语句中,I1 循环到 101,因为代码使用 101-1 作为上限。这是因为MS 开发了假设从零开始的计数器的并行代码):

0 投票
2 回答
3008 浏览

c# - 使用 Parallel.ForEach 的错误

最初,我正在使用 foreach 来完成我的任务。但是,我想提高任务的效率。所以,我想使用 Parallel.ForEach 来完成我的任务。

但是,出现错误“未将对象引用设置为实例”。发生了。

这是我的代码:

如果我使用 foreach(var item in items) 和 foreach (amount in item.a),代码可以正常工作。

我是否错过了 Parallel.ForEach 方法的某些内容?

0 投票
1 回答
438 浏览

c# - 为什么 DispatcherTimer 在随机时间后停止触发?

我已正确设置 DispatchTimer 以每秒触发一次-

问题:它会在一段时间内正确触发,然后停止触发。

附加信息: 现在您可能会问它有什么作用?如果 OneSecondChecker_Tick() 方法正在运行,则有一个类级别(静态)布尔变量设置为 true,如果不是,则设置为 false,因此我们没有此方法的两个实例在运行即使它设置为每秒触发一次。确保 OneSecondChecker_Tick() 运行无任何延迟是应用程序要求。我也不想在无限循环中运行。在 OneSecondChecker_Tick() 运行之前,会进行第二次检查以查看表值是否已更新。正是该表值“某种”通知 OneSecondChecker_Tick() 运行。该表值由另一个应用程序更新。

在方法本身中,我确实调用了使用 TPL 并行运行线程。我不知道这是否与它有关。

编辑 我仍然无法弄清楚这一点。可能是应用程序被冻结。任务管理器并没有这么说。是否可以判断应用程序是否没有从任务管理器以外的其他地方响应?

0 投票
1 回答
407 浏览

vb.net - Synclock 和 Parallel.for 中可能存在 lambda 冲突

在以下包含 parallel.for 的嵌套循环中,是否适合在下面的同步锁中使用 lambda 计数器“j1”?该代码似乎有效——但我不知道我是否丢失了任何信息。

我宁愿将 parallel.for 用于“i”中的外部循环,但不知道 lambda 如何影响所有这些工作?

0 投票
11 回答
19045 浏览

c# - 如何为 TPL 中的任务分配名称

我将使用在我的应用程序上运行的大量任务。由于某种原因,每组任务都在运行。我想为这些任务命名,这样当我查看“并行任务”窗口时,我可以轻松识别它们。

从另一个角度来看,考虑我正在使用框架级别的任务来填充列表。使用我的框架的开发人员也在使用任务来完成她的工作。如果她查看并行任务窗口,她会发现一些任务不知道。我想命名任务,以便她可以将框架任务与她的任务区分开来。

如果有这样的API会很方便:

或许:

甚至在与Parallel.ForEach

是否可以命名任务?

是否可以给 ‍‍‍<code>Parallel.ForEach 一个命名结构(可能使用 lambda),以便它使用该命名创建任务?

我错过了这样的API吗?


我还尝试使用继承的任务来覆盖它的 ToString()。但不幸的是,并行任务窗口不使用 ToString()!

0 投票
2 回答
12664 浏览

c# - 发生“System.OperationCanceledException”类型的异常

我正在实现一个 Parallel.ForEach 循环来做一些工作,但是由于未处理的异常,我遇到了一个问题,而我认为我处理了取消。

为了解决这个问题,我在 winform 中做了一个简单的测试设置。它有一个开始按钮、一个取消按钮和一个输出标签。

编码:

当我运行程序并点击取消按钮(触发 button2_Click)时,我不断收到此错误:

mscorlib.dll 中出现“System.OperationCanceledException”类型的异常,但未在用户代码中处理

附加信息:操作已取消。

如果有这个异常的处理程序,程序可以安全地继续。

调试器突出显示 Parallel.ForEach 部分。但为什么???我以为我通过 CancellationToken 正确处理了取消。

ex 中的异常消息并没有让我清楚:“{“操作被取消。”}”呃......是的......这就是意图......

我在看什么?问候,

马蒂斯

0 投票
1 回答
17628 浏览

asynchronous - C# 中的异步/等待和并行

什么时候应该使用 async/await,什么时候应该在 C# 中使用 parallel.foreach?并行和异步/等待是否具有相同的目的?它们有什么区别?

0 投票
0 回答
307 浏览

c# - Parallel ForEach - 连续调用持续更长时间

我有一个基本上以并行方式迭代以并行化以下过程的函数:

  1. 获取网页
  2. 解析html代码
  3. 返回结果并添加到结果集合

问题是第一次运行大约需要 5 分钟,第二次运行大约需要 40 分钟。输入集合没有改变,因此运行时间应该非常相似。任何想法?

我已经包含了 GetPrices(int)。第二次运行时,它从 netstat 中的 0 个连接开始(因此从第一次开始就没有可用的连接),但它只增长到 5 个连接(而不是第一次运行时的 30 个)。

另外,您认为退货收集是否需要锁定?

0 投票
0 回答
898 浏览

c# - 程序挂在并行性上,Parallel.ForEach

我正在尝试制作一个程序,该程序使用 parallel.foreach 在特定目录及其子目录的文件中查找特定字符串,它在大约 90% 的迭代中工作正常,但之后程序挂起,并且不做任何事物。

pbMakeProgress 更新进度条的值,updateList 更新列表框,getAllDirectories 获取子目录,directories 是包含要遍历的所有文件夹名称的列表。

0 投票
2 回答
576 浏览

c# - 从本地初始化 lambda 终止 Parallel.ForEach 循环的最佳方法是什么?

在我的Parallel.ForEach循环中,我有一些需要在“本地初始化”lambda 中初始化的对象。如果这些对象之一无法初始化,我想终止整个并行循环。做这个的最好方式是什么?