【发布时间】:2011-12-01 23:12:43
【问题描述】:
在线程方面总是有点弱,只是通过Steven Toub's Parallel Computing书。
在第 39 页,下面有 Fork/Join 模式的示例
static T[] MyParallelInvoke<T>(params Func<T>[] functions)
{
T[] results = new T[functions.Length];
Parallel.For(0, functions.Length, i =>
{
results[i] = functions[i]();
});
return results;
}
// Approach #4: Using PLINQ
static T[] MyParallelInvoke<T>(params Func<T>[] functions)
{
return functions.AsParallel().Select(f => f()).ToArray();
}
例如上面的方法 3 只是为了澄清结果是否都正式具有值, 当你这样做时
“返回结果”?
或者根据线程是否已完成,它们中只有一些具有值?
当您致电ToArray() 时,方法 4 也是如此
【问题讨论】:
标签: c# parallel-processing fork-join