Jam*_*ery 2 c# task-parallel-library
我正在学习使用并行编程和ForEach方法.是否可以传入一系列操作.
例如,假设我有3种不同的动作:
我想创建一个动作列表(这可能吗?)并添加其中一个动作50次.因此该列表包含50个元素,每个元素都是上述操作之一.
现在,我想将此列表传递给Parallel.Foreach,将MaxDegree设置为x(例如,假设为10).所以基本上它将会访问10个站点.我有4个核心,所以我无法想象这是一个问题.
对不起,如果没有任何意义,我没有别的办法来解释我的意思.这是一种做我想做的事情的合适方式,还是有更好的(更规范的)方式?
这可能吗?
是.
有更好的(更规范的)方式吗?
没有我能想到的.这正是Parallel框架的设计目标.由于您正在创建Actions列表,因此您可能希望使用Parallel.Invoke:
List<Action> list = GetActions();
Parallel.Invoke(list.ToArray());
Run Code Online (Sandbox Code Playgroud)
除非你想测试各种并发数以找到这个特定目的的最佳数量,否则我只是让框架决定而不是在那里抛出任意数字(如10).该框架非常聪明.