我需要重新托管 WF4 设计师的帮助。它应该用于设计非常复杂的工作流,但嵌套活动有限制。(这是一个分支中的第 40 个嵌套活动)。如果超出该限制,则在 PresentationCore.dll 中发生 System.StackOverflowException。
有什么办法,如何增加 System.StackOverflowException 的限制?
这是下载的代码示例。构建和执行应用程序后,将滚动条移动到编号为 40 的最后一个活动,应该会发生异常。
我需要重新托管 WF4 设计师的帮助。它应该用于设计非常复杂的工作流,但嵌套活动有限制。(这是一个分支中的第 40 个嵌套活动)。如果超出该限制,则在 PresentationCore.dll 中发生 System.StackOverflowException。
有什么办法,如何增加 System.StackOverflowException 的限制?
这是下载的代码示例。构建和执行应用程序后,将滚动条移动到编号为 40 的最后一个活动,应该会发生异常。
我可以毫无错误地运行它并滚动到最底部——尽管它确实有点慢——(64 位机器,16 GB 内存)。
您可以在创建新线程时分配堆栈大小,但我不知道如何更改应用程序中默认 UI 线程的大小......如果可以的话,我不确定它是否会很好主意。
此外,增加限制只会隐藏整体问题——这就是为什么你首先需要这个——有人真的会在工作流程中嵌套 40 层复杂性吗?这将是完全笨拙且难以支持的。逻辑不能分成子工作流程等吗?
我通过使用 VisualStudio 中的实用程序 EDITBIN 来增加堆栈的大小解决了这个问题
editbin /STACK:6291456 "WpfApplication1.exe"
不幸的是,通过添加到项目属性中的 Post-Build 部分,它在 VisualStudio 中不起作用。所以我创建了 bat 文件,这是在构建后执行所必需的。