【问题标题】:FatalExecutionEngineError Detected when unhooking event取消挂钩事件时检测到 FatalExecutionEngineError
【发布时间】:2013-01-25 05:25:11
【问题描述】:

我正在开发一个客户端/服务器应用程序作为我论文的一部分,并选择使用SocketAsyncEventArgs 来获得网络操作方面的最大性能。今天下午,我决定对创建 20 个线程并每个线程发送 100,000 条 UDP 消息的应用程序进行快速而肮脏的压力测试。在应用程序快结束时出现以下异常:

如何查找异常原因?或者有没有人知道为什么它会在一个看似随机的地方摔倒?

我相信大部分时间我都可以重新制作,并且很乐意在必要时提供代码。

更新:

我在 .Net 4.0 版上运行了完全相同的代码,没有出现错误。据我所知,这似乎是 .Net 4.5/Compliers/Jit 的问题。任何关于如何缩小例外范围的想法将不胜感激。

【问题讨论】:

  • 我确实看到了@HansPassant,但每次都在同一个地方,但错误代码与 dup 中显示的错误代码不同。感谢您的链接
  • 您是否检查过您的应用程序是线程安全的?!也许你做了一些 ipc 并没有实现一个好的回调方法......?!请告诉我更多关于您的应用程序将如何清理线程、线程之间应该通信的信息以及如果是这样,您认为如何做到这一点的更多信息。顺便提一句。你使用一些本机(不安全)代码部分,还是一些 COM 部分(如 activeX-lib)?问候,我
  • @NicoSöllinger 我认为它在很大程度上是线程安全的。目前整个代码库都在使用SocketAsyncEventArgsxxxxAsync 方法。因此,我假设线程是代表我清理的。虽然我使用Semaphorelock(){} 来管理Stack 的资源,但没有其他组件,例如com。
  • @HansPassant 我已将范围缩小到 .Net 4.5 的问题。该代码在 .Net 4.0 上运行良好。关于如何从这里找到原因的任何想法?

标签: c# exception fatal-error


【解决方案1】:

是否只在调试时出现?我见过类似的情况,只有在 x86 上调试 x86(不是任何类型)时才会出现这些错误。

【讨论】:

  • 稍后我会尝试在不使用调试器等的情况下运行,然后回复我的运行方式,谢谢
  • 我已将其缩小到 .Net 4.5 的问题。代码在 .Net 4.0 上运行良好
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-16
相关资源
最近更新 更多