Parallel.ForEach
正在阻塞,直到所有線程返回。下面的每個objectType實際上是一個列表。在這種情況下,是否有任何方法可以使用Parallel.ForEach
?請指教。將幾個Parallel.ForEach合併爲一個用C#
Main(){
List<Type1> objectType1 = ...
List<Type2> objectType2 = ...
List<Type3> objectType3 = ...
Parallel.ForEach(objectType1, MyFunction)
Parallel.ForEach(objectType2, MyFunction)
Parallel.ForEach(objectType3, MyFunction)
}
編輯: 這是MyFunction的:
MyFunction (object arg) {
//some code here
if (arg is Type1) { ProcessType1(arg as Type1); }
else if (arg is Type2) { ProcessType2(arg as Type2); }
else if (arg is Type3) { ProcessType3(arg as Type3); }
//some more code here
}
在所有情況下,「MyFunction」都是相同的函數嗎? –
爲什麼MyFunction的類型操作?如果它們都在相同的類型上運行,請將您的列表合併到一個列表中,然後在每個項目上調用Parallel.ForEach。 –
小提示:不是'is',然後'as',你可以'var t1 = arg作爲Type1; if(arg!= null)ProcessType1(t1);' –