私のParallel.ForEach
ループには、「ローカル初期化」ラムダで初期化する必要があるオブジェクトがいくつかあります。これらのオブジェクトのいずれかが初期化に失敗した場合、並列ループ全体を終了したいと考えています。これを行う最善の方法は何ですか?
Parallel.ForEach(collection,
() => //local init
{
var localObjects= CreateObjects();
foreach (var obj in localObjects)
if (!obj.Initialize())
// want to terminate the entire parallel loop here!!
return localObjects;
}
(element, loopState, localObjects) => // loop body
{
// some code here
},
localObjects => // local finally
{
foreach (var obj in localObjects)
obj.Terminate();
});