问题标签 [parallel.invoke]
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.
c# - Parallel.Invoke 和 Parallel.ForEach 本质上是一样的吗?
“相同的事情”我的意思是这两个操作基本上做同样的工作,它只是归结为根据你必须使用的内容调用哪个更方便?(即代表列表或要迭代的事物列表)?我一直在搜索 MSDN、StackOverflow 和各种随机文章,但我还没有找到明确的答案。
编辑: 我应该更清楚;我在问这两种方法是否做同样的事情,因为如果他们不这样做,我想了解哪种方法更有效。
示例:我有一个包含 500 个键值的列表。目前我使用一个foreach
循环遍历列表(串行)并为每个项目执行工作。如果我想利用多个核心,我应该简单地使用Parallel.ForEach
吗?
假设为了争论,我有一个包含 500 个代表的数组来处理这 500 个任务 - 最终效果会是任何不同的调用Parallel.Invoke
并给它一个包含 500 个代表的列表吗?
c# - Parallel.Invoke and thread invocation - Clarification?
I have this code which creates a deadlock :
Result :
Before 1
(and deadlock....)
I know that this is a bad practice to lock over instances beyond code's control or , this
. But it's just for this question.
I can understand why a deadlock is created here.
The main thread acquires the lock(test)
in main
and then a new thread starts to invoke DoWorkUsingThisLock
- there it tries to acquire a lock over the same instance variable and it's stuck ( because of t1.Wait()
at main
)
OK
But I've seen this answer here which also creates deadlock.
The result is :
Before ClassTest.DoWorkUsingThisLock 1
Before ClassTest.DoWorkUsingThisLock 2
ClassTest.DoWorkUsingThisLock 1 // <---- how ?
ClassTest.DoWorkUsingThisLock Done 1
Question:
How come it DID acquire the lock for the first invocation (DoWorkUsingThisLock(1)
)? The lock
at main
is still blocked due to Parallel.Invoke
which DOES block !
I don't understand how the thread has succeeded to enter the lock(this)
section.
vb.net - 如何让 log4net 为 Parallel.Invoke 中的每个操作创建单独的日志文件?
我有一系列Action
我想使用Parallel.Invoke
. 但是对于每一个Action
我都希望有一个由 log4net 创建的单独的日志文件。在我的 log4net 配置文件中,我添加了这个:
如果只有一个 Action 可以执行此操作,则可以正常工作:日志文件具有正确的文件名。
Action
但是,如果要执行的日志不止一个,那么所有日志条目都会在同一个日志文件中结束。
创建的代码Action
是这样的:
创建的日志文件使用分配给UniqueIdentifier
属性的值之一。我无法弄清楚这个值是如何被挑选出来的:它并不总是第一个或最后一个。在上面的示例中,仅创建了文件3S2M3_0004.log
并且它包含所有日志条目。
我已经尝试过 LogicalThreadContext 和 ThreadContext 并且没有区别。
c# - 使用 1 个 DataReader 进行多个数据库调用
我只是在学习使用Parallel.Invoke()
并试图将注意力集中在返回多个DataSets()
例如,让我们采用下面的示例语法 - 我如何为我需要返回ExecuteSqlQuery()
的 3 个中的每一个使用该方法?DataSets()
我这个项目的目标框架是 Net Framework 4
c# - 如何在 parallel.invoke 中动态添加方法
下面给出的是示例代码。
我想动态调用“MainFunc”方法 10 次。因此,我使用了 foreach 循环。但是,该方法只运行一次。请帮忙。提前致谢 :)
vb.net - 使用 Parallel.Invoke 时多个命令的 Informix SQL 连接的性能
据我所知,使用 Threading.Tasks.Parallel.Invoke 方法并行执行多个命令时,SQL 连接处理有两种方法。第一种方法是定义一个在所有线程之间共享的公共 SQL 连接。第二种方法是为每个线程打开一个新连接。
这是一个例子:
另一种方法是使用一个共享连接:
现在,应该首选这两种方式中的哪一种?哪一个会带来更好的性能?
据我观察,当使用共享连接时,就像在我的第二个示例中一样,SQL 命令是按顺序执行的。真的吗?
c# - 有条件的并行调用
我有一个场景,我想调用函数但希望有条件地调用它们。所以在下面的代码中,只会调用函数 2 和 3。但是,Action 部分不返回值,但在我的情况下,我想存储返回值。
最初我所拥有的代码低于代码,但这会调用所有函数。有什么想法吗?
c# - 我必须使用 C# 并行调用多个不同的 Web 服务
我有一个要求,我需要向不同服务器上托管的不同 Web 服务发送多个并行调用。我必须阅读配置文件才能知道必须进行多少次调用。假设有 4 台服务器,并且在每台服务器上托管一个 Web 服务。配置的值为 4 然后我必须并行调用每个服务 4 次。总调用数为 16。这是我所做的代码:
我实际上打了 14 到 16 个电话,所以出了点问题。这是正确的方法吗?
c# - Parallel.Invoke vs Parallel.Foreach 用于在大型列表上运行并行进程
我有 C# 列表,其中包含大约 8000 个项目(文件路径)。我想在所有这些项目上并行运行一个方法。为此,我有以下 2 个选项:
1)手动将列表划分为小块(例如每个 500 大小)并为这些小列表创建操作数组,然后调用 Parallel.Invoke 如下所示:
2)第二个选项是运行 Parallel.ForEach 如下
- 这里最好的选择是什么?
- Parallel.Foreach 如何将列表分成小块?
请建议,提前谢谢。
c# - c# Parallel.Invoke vs Parallel.ForEach - 处理数据源并并行修改
有人可以解释使用什么路径Paralle.Invoke
或Parallel.ForEach
在这种情况下:
所以数据将像列表一样返回,然后我有特定的方法将根据类别属性处理列表中的某些记录。
我应该使用什么:.ForEach 或 .Invoke?