一个极有可能引发ExecutionEngineException的情况
来源:互联网 发布:java拼接html字符串 编辑:程序博客网 时间:2024/05/23 10:36
“执行引擎错误是致命错误,决不应该发生。此类错误主要是在执行引擎被破坏或丢失数据时发生的。系统会随时引发此异常。在可能的情况下,系统将引发比 ExecutionEngineException 异常能提供更多信息的异常。
应用程序不应引发 ExecutionEngineException。”
从这个描述可以看出,ExecutionEngineException这个异常在正常的程序中应当是不可能发生的,致命错误嘛。然而我今天却就与这个异常来了个多次碰头。
具体情况大致是这样的:一个具有查看器(Viewer)功能的COM控件,在.net中使用。这个Viewer有一个特性,在当前可视区域发生某些变化时,将会触发两个事件,而在更特定的情况下,这两个事件触发的时间差可能非常之小,几乎是同时发生。此时外层的.net程序引发ExecutionEngineException异常的可能性就变得非常之大,基本上每次操作都至少遇上一次,当然也只能遇上一次,因为一遇上就差不多Crash了。
应该还是在.net与COM交互时发生的问题,虽然不清楚具体过程,也可以大概猜想一下:当第一个事件发生的时候,.net开始对它进行处理,没等处理完毕,第二个事件又发生了,异常也就诞生了。
知道原因就好办。加入一个事件挂起机制,使得任意两个事件的触发时间间隔不会太小,避免两个事件几乎同时触发的情况再次发生。果然,一试之下再也没有出现这个异常了。如果有遇上类似现象的,不妨用这个思路试一下。
PS,这里我使用的环境是.net framework 1.1,目前尚不知在.net framework 2.0下是否有同样的现象。
http://www.cnblogs.com/sunwaywei/archive/2006/08/21/482674.html
- 一个极有可能引发ExecutionEngineException的情况
- 一个极有可能引发ExecutionEngineException的情况
- 引发类型为“System.ExecutionEngineException”的异常
- 引发类型为“System.ExecutionEngineException”的异常
- KeyDown 事件中引发System.ExecutionEngineException异常
- Android有可能产生空指针的情况
- Unix环境写入文件时,要注意的一个小细节,要不任何情况都有可能发生
- 一个 * 引发的血案
- 一个 ~ 引发的悲剧
- 一个BUG引发的...
- 一个“-”引发的血案
- 一个"/"引发的血案
- 客户们不要再为一个月几十块钱在哪里斤斤计较吧...你的损失有可能在你不之情的情况下在不断流失
- 转一个新闻。我认为这个有可能是真的
- 一个有可能导致系统慢的sql语句。
- 一个馒头引发的麻烦
- 一个“笑话”引发的思考
- 一个!号引发的灾难!!!!!!!
- .Net下几种日志管理方法
- ASP.NET2.0登陆控件的使用(常见的三种方法)
- ASP.NET2.0X64的奇怪问题
- ASP.NET2.0-EnterKey-DefaultSubmitButton
- 怎样从ASP.NET2.0中读取连接字符串的设置
- 一个极有可能引发ExecutionEngineException的情况
- ASP.NET服务器控件PleaseWaitButton[翻译]
- 用gridview显示来自excel表格里的数据
- ASP.NET2.0WebService中传递DataTable参考
- ASP.NET实现下拉框二级联动组件
- 如何解决Remoting无法传输存储过程参数的问题
- 在ExcuteReader中使用输出参数的问题
- asp.net错误处理封装
- 使用UTF-8编码/JMail组件发送邮件乱码问题