【发布时间】:2012-11-24 18:50:11
【问题描述】:
我想使用 F# 中的任务并行库 (TPL) 来执行许多 (>1000) 长时间运行的任务。这是我当前的代码:
Parallel.For(1, numberOfSets, fun j ->
//Long running task here
)
当我启动它时,似乎 .NET 会立即启动所有任务并在它们之间不断跳动。更好的是,如果它一直执行一项任务,直到它完成,然后再转移到下一个任务。这将最大限度地减少上下文切换。
有没有办法向调度程序提供提示?我知道可以提供提示,但是我找不到明确的示例,或者调度程序对此是否已经很聪明,这只是我的看法,即发生了太多的上下文切换。感谢您的帮助!
【问题讨论】:
标签: .net f# parallel-processing task-parallel-library