gpt4 book ai didi

c# - 限制 Windows 工作流的线程

转载 作者:太空宇宙 更新时间:2023-11-03 12:59:22 24 4
gpt4 key购买 nike

我正在开发一个使用 Windows Workflow 的应用程序。工作流的一个区域使用运行 AsyncCodeActivity 的 Parallel.ForEach 事件。您可以在下面的屏幕截图中看到这一点。 RunPolicyWorkflow 事件是一个 AsyncCodeActivity。

enter image description here

据我从 Windows Workflow 文档中了解到,这将根据需要创建新线程,以对在 ParalleForEach 事件中枚举的集合进行操作。

我在并行循环中有大约 16000 个项目。在循环内(在 RunPolicyWorkflow 事件期间)我做了一些 CPU 工作,但大部分时间都花在了将结果保存到 SQL Server 实例上。在使用资源监视器监视我的进程时,我注意到该进程中大约有 2,000 个线程在运行工作流。

看起来我的应用程序创建的线程越多,速度就越慢。我的计算机只有 8 个逻辑处理器,所以我很确定这不是很好的优化。

有谁知道限制 Windows Workflow 创建的线程数量的方法吗?或者有人对可以做得更好的方法有任何建议吗? Parallel 循环中的所有项目都相互独立,我想尽快处理集合 (16000) 中的所有项目。最初它的处理速度约为每分钟 300 个项目,但随着线程数增加和处理的项目越来越多,它会降低到每分钟约 60 个项目。

最佳答案

这是一个限制并行事件的示例事件。

https://msdn.microsoft.com/en-us/library/vstudio/ee620808(v=vs.100).aspx

关于c# - 限制 Windows 工作流的线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32832450/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com