下面的代碼片段有什麼區別嗎?如果是這樣,什麼?AsParallel.ForAll vs Parallel.ForEach
myList.AsParallel().ForAll(i => { /*DO SOMETHING*/ });
和
Parallel.ForEach(mylist, i => { /*DO SOMETHING*/ });
將會在主線程等待所有子線程來完成?在MVC應用程序中,如果我在我的控制器操作中執行並行處理,主線程完成後子線程會發生什麼情況。即使在主線程完成之後它們會被中止還是會完成?
我建議你閱讀:http://reedcopsey.com/2010/02/03/parallelism-in-net-part-8-plinqs-forall-method/ – Mir
如果我是你,我會打開另一個問題爲您的MVC並行處理thingy。 – Pacane
請小心AsParallel().ForAll(),因爲它會導致不可預測的結果。例如,我有一個按鈕來執行此代碼時單擊:myEnumerable.AsParallel()。ForAll(我作爲字符串=> otherDictionary.Add(i,0))。它會將null作爲關鍵字添加到otherDictionary中。我不得不重寫使用foreach循環。奇怪的。 – YukiSakura