问题标签 [parallel.for]

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 回答
810 浏览

c# - 优化嵌套循环c#

我正在尝试优化以下代码和平 - 有多次迭代会消耗大量时间。查看了 Parallel.For 示例,但不明白如何在我的情况下使用它们,因为我在每个“for”循环中都有“double”变量。你能帮忙吗?谢谢

0 投票
0 回答
405 浏览

c# - 使用并行和任务的多图像处理

我正在编写一个提供端到端图像处理系统的 C# windows 窗体应用程序。该系统由许多图像处理块(即缩放器、降噪等)组成,每个块都是用 C 编写的算法,我将它们中的每一个都构建到 DLL 中并从我的 C# 应用程序中调用它们.

我的系统是这样的:

目前,我正在使用的代码如下所示:

但我看到该应用程序需要很长时间才能完成几张图像。其实我不擅长C#,只是通过一些例子自学并行和任务。

我不知道我的代码在处理多个处理方面是否足够好,还是有更好的方法?所以我开始这个线程来寻求帮助/建议。

0 投票
2 回答
160 浏览

c# - 如何使用 CancellationToken 停止多个 Parallel.For 循环

我正在使用 C# 和 WPF 开发一个应用程序。我正在使用 3 个嵌套Parallel.For循环,如下所示。当我Cancel()获得令牌时,循环开始抛出ImportAbortedException但是,我无法捕捉ImportAbortedException. 我咳嗽的是AggregateException

我想要的是,停止所有的Parallel.Fors 并抓住ImportAbortedException并做一些其他的事情。

这是代码。

0 投票
2 回答
417 浏览

c# - 使用并行时程序卡住

我对 C# 相当陌生,我制作了一个模拟乐透抽奖的简单程序。它采用第一个(随机)数字并计算赢得多少平局。这是波兰乐透,所以有 6 个号码可以匹配。

当程序以简单的 for 循环运行时,一切正常。但是有一个问题,当我使用 Parallel For 或任何其他多任务或多线程选项时。

首先是代码:

当我尝试使其成为 Parallel.For 时:

程序在某个时候卡住了。计数器达到〜3,000-40,000并且拒绝走得更远。

我尝试了什么:

  1. 使类成为结构
  2. 每约 1000 次迭代收集垃圾
  3. 使用线程池
  4. 使用任务运行
  5. 仅制作随机类程序成员(厌倦了使六类“更轻”)

但我一无所获。

我知道这对你们中的一些人来说可能是一件非常简单的事情,但是人们必须以某种方式学习;)我什至买了一本关于异步编程的书,以找出它为什么不起作用,但无法弄清楚。

0 投票
1 回答
45 浏览

c# - 操纵线程之间的切换

每秒多少次(多少次)parallel.for 在线程之间切换?我可以管理这个参数吗?我想了解它是如何在低级别工作的。

0 投票
2 回答
812 浏览

c# - 在循环中迭代大量数据并准备数据表的最佳方法是什么

我有需要转换为数据表的对象列表。

集合长度存在 20K 或更多。

当我尝试使用Parallel.forthen 迭代集合时,它只是挂断并且花费了太长时间。

任何人都可以建议将对象列表最佳转换为数据表的最佳方法吗?

0 投票
2 回答
162 浏览

c# - C# Parallel.For 不执行每一步

我一直在为目前按顺序运行的导入服务制作模型。然而,我的模型似乎表现出一个奇怪的问题,有时 for 循环中的一两个项目没有执行。

使用此代码,我经常发现批次永远不会完成,并且 batch.Processed = 999 或 998。

任何人都可以阐明我做错了什么。

提前致谢。

编辑:

要清楚存储库/批处理对象-我相信我当前的模型是线程安全的

这只是一个模型,因此我的存储库后面没有数据库或其他持久性。

另外,我不是在 i 的值上竞争我的批次,而是批次对象的 Processed 属性指示的循环的迭代次数(实际已经完成的工作)。

谢谢

解决方案:

我忘记了需要同步批次的更新。应该看起来像:

0 投票
2 回答
3385 浏览

c# - c# 带有分钟延迟的并行 For 循环

我有一个非常简单的 for 循环,看起来像这样

DoSomething 函数大约需要 3 分钟来执行。我想编写一个 for 循环,每分钟调用 DoSomething() 而无需等待上一个调用完成。我试图做这样的事情:

但它不起作用,因为它首先调用然后休眠。颠倒这些步骤也意味着 DoSomething 方法调用 fire 在每次调用之间没有延迟。如何设置它以便每分钟都调用 DoSomething?

谢谢!

0 投票
2 回答
332 浏览

c# - 数组遍历:并行性能比非并行慢

在我的程序中,我想通过这个循环确定有多少个数字有 9 个数字,很多有 8 个数字,等等:

我像这样并行化循环:

但基准是:顺序:0.3834 并行:0.6864

为什么并行代码更慢?我的代码有问题吗?我的 CPU 是 AMD Phenom™ II X4。型号,955。

0 投票
2 回答
88 浏览

c# - 在c#中调整Parallel For的函数

我刚开始学习 c# 中的 Parallel.For(),我有一个函数可以做某事,但我不知道如何将它调整为 Parallel。任何人都可以给我看一个类似案例的例子吗?

更新:

更新:这是我的尝试,但出了点问题......