1

我有 WF,我在其中使用并行 foreach 来枚举项目列表并对每个项目进行一些处理。要求是无限运行并行foreach,直到用户干预并停止该过程。但是,当有超过 20 个项目时,我看到多个线程被分拆,CPU 使用率将飙升至 99%,最终整个系统响应速度变慢。如何限制可以在 WWF 的 foreach 中并行创建的线程数。有什么可以设置的属性吗?非常感谢任何帮助。

4

2 回答 2

0

创建一个 LimitedConcurrencyLevelTask​​Scheduler

http://msdn.microsoft.com/en-us/library/ee789351.aspx

于 2013-05-03T18:16:42.780 回答
0

WF4 不会为项目创建新线程。只有在使用异步活动时,您才会获得活动的任何重叠执行。通常这对异步 IO 最有效,但如果您在活动中通过启动其他线程来执行此操作,则可以进行后台编译。不过,WF 运行时每个工作流实例只会使用一个线程。

于 2013-05-05T06:32:07.397 回答