0

我需要重新托管 WF4 设计师的帮助。它应该用于设计非常复杂的工作流,但嵌套活动有限制。(这是一个分支中的第 40 个嵌套活动)。如果超出该限制,则在 PresentationCore.dll 中发生 System.StackOverflowException。

有什么办法,如何增加 System.StackOverflowException 的限制?

是下载的代码示例。构建和执行应用程序后,将滚动条移动到编号为 40 的最后一个活动,应该会发生异常。

4

2 回答 2

0

我可以毫无错误地运行它并滚动到最底部——尽管它确实有点慢——(64 位机器,16 GB 内存)。

您可以在创建新线程时分配堆栈大小,但我不知道如何更改应用程序中默认 UI 线程的大小......如果可以的话,我不确定它是否会很好主意。

此外,增加限制只会隐藏整体问题——这就是为什么你首先需要这个——有人真的会在工作流程中嵌套 40 层复杂性吗?这将是完全笨拙且难以支持的。逻辑不能分成子工作流程等吗?

于 2014-02-06T09:53:01.127 回答
0

我通过使用 VisualStudio 中的实用程序 EDITBIN 来增加堆栈的大小解决了这个问题

editbin /STACK:6291456 "WpfApplication1.exe"

不幸的是,通过添加到项目属性中的 Post-Build 部分,它在 VisualStudio 中不起作用。所以我创建了 bat 文件,这是在构建后执行所必需的。

于 2014-03-28T08:45:58.623 回答