在线程方面总是有点弱,只是通过Steven Toub 的并行计算书。
在第 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,只是为了澄清结果是否都正式具有值,当你这样做时
“返回结果”?
还是只有其中一些具有取决于线程是否已完成的值?
当您调用时,方法 4 也是如此ToArray()