表达式树的深度限制(Expression tree depth limitations)

2019-07-29 14:03发布

我面对试图在有大约400和较小值的深度不会引起任何问题类型的表达式<Func键<MyType的,布尔>>的LambdaExpression调用编译()的一个问题。 我无法找到有关这类限制的东西。 任何人都可以澄清这一点? 我可以提高限额吗?

UPD:对不起,忘了提,我收到StackOverflowException:

类型“System.StackOverflowException”未处理的异常发生在System.Core.dll {因为当前线程堆栈溢出状态无法计算表达式。}

Answer 1:

你是合法运行到堆栈大小的限制(虽然我质疑400多个项目拉姆达的智慧)。 绕过最简单的方法是专门创建一个新的线程用于与更大的堆栈执行此编译,使用螺纹构造函数的堆栈大小作为一个参数: http://msdn.microsoft.com/en-us/library /ms149581.aspx

编译调用该线程和增加堆栈大小参数是必要的。 它以字节为单位,我相信,这将使约1048576默认的,所以从这里开始,并根据需要提出。



文章来源: Expression tree depth limitations