Parallel.ForEach
에 사용할 수있는 finally
이 있는지 알고 싶습니다.Parallel.ForEach finally 절
try
{
}
finally
{
}
Parallel.ForEach
에서 가능한가요?
루프가 완료되면 마침내해야합니다.
Parallel.ForEach(someList, x =>
{
//...
}, // Now i need to do a finally);
내 문제는 내가 내 Parallel.ForEach 주위에 마지막 시도를해야한다는 것입니다,하지만 난 결국 일이 돼요. 병렬 작업이 완료 될 때만 발생해야합니다.
그래서 이것은 나를 위해 작동하지 않습니다 :
try
{
Parallel.ForEach(someList, x =>
{
//...
});
}
finally
{
}
어쩌면이 일을 다른 방법이 있나요?
약간의 설명으로,이 작동하는 이유는 'Parallel.ForEach'가 모든 작업이 완료 될 때까지 (예 : 스레드를 시작하는 것과는 달리) 제어를 즉시 반환하는 현재 스레드를 차단한다는 것입니다. –
내 업데이트를 확인하십시오. – Willem
미안하지만, "나는 마침내 일어나기를 원하지 않는다"또는 "작업이 완료 될 때"에 의해 당신이 의미하는 것이 상당히 명확하지 않습니다. (1) 마침내 원한다면 쓰지 마라. (2)'Parallel' 클래스를 사용하여'Task' 클래스에서 추상화합니다 (실제로 그 클래스를 참조한다고 가정). –