【发布时间】:2011-11-27 13:44:33
【问题描述】:
// parameters.Count == 10
// actualFreeLicenses == 2
Parallel.For(0, parameters.Count, new ParallelOptions()
{
MaxDegreeOfParallelism = actualFreeLicenses
}, i =>
{
ExternalProgram(i);
}
);
当我执行上面的代码时,我注意到传递给ExternalProgram 方法的i 的值是1 & 6,后来是2 & 7,后来是3 & 8 ...
如果我有 14 个参数和 2 个许可证,它总是启动 1 和 8,稍后启动 2 和 9 ...
是否可以定义顺序:前 1 和 2,后 3 和 4 等等?
【问题讨论】:
-
如果你有订单依赖,你需要使用延续。
-
@Sven 这不是必需的,但会很有用 - 在这里它会是题外话
标签: c# multithreading .net-4.0 synchronization parallel-for