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