問題1:最大程度地利用.NET任務並行庫
是使用的Parallel.For和Parallel.ForEach更適合的與被有序或無序任務的工作?
我問的原因是我最近更新了一個串行循環,其中一個StringBuilder被用來根據各種參數生成一條SQL語句。結果是,與使用標準的foreach循環相比,SQL有點混亂(到它包含語法錯誤的地步),因此我的直覺是TPL不適合執行數據必須出現在特定的順序。
問題2:
是否TPL自動使用之前執行必須提供我任何的多核架構?
我問這個問題的原因與我詢問的有關第三方物流運營績效分析的問題有關。對這個問題的回答讓我意識到TPL並不總是比標準串行循環更高效,因爲應用程序可能無法訪問多個內核,因此創建額外線程和循環的開銷會導致性能比較下降到標準的串行循環。
如果你有兩個問題,也許你應該張貼兩個問題:) –