例外:内存不足,无法继续执行程序

时间:2011-02-08 09:09:40

标签: .net com-interop out-of-memory

我在我的.NET应用程序中引用了一个ActiveX dll,并且在从这个ActiveX对象加载大量数据的用户上抛出“内存不足以继续执行程序”异常。

解决此问题的推荐方法是什么?

开发这个dll的公司对修复这个bug并不是很激动,所以我自己试图解决这个问题。

由于

1 个答案:

答案 0 :(得分:0)

假设是ActiveX控件消耗内存而不是代码,我不确定你可以做什么,除了尝试使用ActiveX控件以稍微不同的方式使用较少的内存或防止此异常,例如:

  • 防止某人一次加载太多数据集。
  • 以某种方式将大型数据集拆分为几个较小的数据集。
  • 使用64位进程。
  • 尝试以某种方式将内存压力分解为多个进程。

当然这将取决于ActiveX控件的细节,因此如果不了解控件的更多信息,很难说这是否可行。

根据this answer,有一个machine.config设置允许你增加每个进程的内存限制,这可能会有所帮助 - 你还应该阅读关于这个问题的第二个答案,这个问题更详细。为什么会发生这种异常。