gpt4 book ai didi

c# - 并行 Foreach 和操作

转载 作者:行者123 更新时间:2023-11-30 19:02:43 26 4
gpt4 key购买 nike

我正在学习使用并行编程和 ForEach 方法。是否可以传入一个 Action 列表。

例如,假设我有 3 个不同的操作:

  • 访问谷歌
  • 访问雅虎
  • 访问StackOverflow

我想创建一个 Action 列表(这可能吗?)并将其中一个 Action 添加 50 次。所以列表包含50个元素,每个元素都是上述 Action 之一。

现在,我想将此列表传递给 Parallel.Foreach,并将 MaxDegree 设置为 x(例如,假设为 10)。所以基本上它一次会访问 10 个站点。我有 4 个内核,所以我无法想象这是个问题。

抱歉,如果这没有任何意义,我没有其他方式来解释我的意思。这是做我想做的事情的合适方式,还是有更好(更规范)的方式?

最佳答案

Is this possible?

是的。

Is there a better (more canonical) way?

我想不到了。这正是 Parallel 框架设计的目的。由于您正在创建一个操作列表,因此您可能希望使用 Parallel.Invoke,但是:

List<Action> list = GetActions();
Parallel.Invoke(list.ToArray());

除非您想测试各种并发数以找到适合此特定目的的最佳并发数,否则我会让框架自行决定,而不是在其中输入任意数(例如 10)。该框架非常智能。

关于c# - 并行 Foreach 和操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9523490/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com