3

我的 .net 插件中出现 OutOfMemory 异常。该插件正在使用大量托管和非托管对象。有没有办法捕获这个异常?

更新:我认为任何应用程序如果处理大量需要处理且不定期释放的数据,都会出现 OutofMemory 异常。假设我有一种方法可以分析内存中的某些结构。我给它 300 个结构,它将每个结构加载到内存中,分析它们并完成处理。在这个操作中,内存使用量是 X。现在如果我给它处理 3000 个结构,它将分析内存中的 3000 个结构,内存使用量将达到 10X。

更新

这个问题只出现在 Excel 2007 中,而不出现在 Excel 2003 中,这就是为什么我要求 MSDN 人员调查它的原因。

4

3 回答 3

3

在 .Net 中,当运行时无法为您的应用程序分配请求的内存时,它会抛出 OutOfMemoryException。因此,处理此类异常的实际工作很少。

而不是抓住它,你应该首先防止它发生。忽略异常不会使问题消失。

于 2009-04-22T08:02:11.010 回答
0

如果你得到一个 OutOfMemoryException,你的程序已经死亡、不复存在、被传递,它不再存在并且已经去见它的制造者了。

但严重的是,它无法恢复一些已用完的内存,因此您无能为力。

于 2009-04-22T08:02:40.117 回答
0

它可能是垃圾收集器让你。尝试定期强制收集。

如果这没有帮助,请阅读:http ://www.simple-talk.com/dotnet/.net-framework/the-dangers-of-the-large-object-heap/

于 2009-04-22T13:56:13.153 回答