问题 1。
使用 Parallel.For 和 Parallel.ForEach 是否更适合处理有序或无序的任务?
我问的原因是我最近更新了一个串行循环,其中 StringBuilder 用于根据各种参数生成 SQL 语句。结果是,与使用标准 foreach 循环相比,SQL 有点混乱(以至于它包含语法错误),因此我的直觉是 TPL 不适合执行数据必须出现在特定的顺序。
问题2。
TPL 是否自动使用我必须在执行之前提供任何东西的多核架构?
我提出这个问题的原因与我之前提出的一个与 TPL 操作的性能分析有关的问题有关。对这个问题的回答让我意识到,TPL 并不总是比标准串行循环更有效,因为应用程序可能无法访问多个内核,因此创建额外线程和循环的开销会导致性能下降到一个标准的串行环路。