我正在创建一个代码,它使用DynamicMethod将IDataRecord转换为类并发出MSIL指令。对于类似10K左右的记录,代码非常有用。 当由于从远程服务器选择太多记录(即执行时间接近一分钟左右)而增加方法的执行时间时,会出现问题。
我有一个代码的静态版本(用C#编写),它同时执行相同数量的记录,但不会崩溃。
我得到的例外情况如下:
消息:托管调试助手'FatalExecutionEngineError'在'C:\ Users \ radoslav.ivanov \ Desktop \ DynamicCodeCreationConsoleTest \ DynamicCodeCreationConsoleTest \ bin \ Debug \ DynamicCodeCreationConsoleTest.vshost.exe'中检测到问题。 附加信息:运行时遇到致命错误。错误的地址是0x708511cd,在线程0x6960上。错误代码是0xc0000005。此错误可能是CLR中的错误,也可能是用户代码的不安全或不可验证部分中的错误。此错误的常见来源包括COM-interop或PInvoke的用户封送错误,这可能会破坏堆栈。