C# 已超过Notes可支持的最大内存段数

C# 已超过Notes可支持的最大内存段数,c#,lotus-domino,interop-domino,C#,Lotus Domino,Interop Domino,我正在使用Domino.dll访问C#.NET 2.0中的NSF文件 我使用多线程一次访问4个NSF文件,对于小的NSF文件来说效果很好,但是如果我尝试访问大的NSF文件,我会出现内存不足的异常,并且超过了Notes可以支持的最大内存段数 当我在while循环中从一个大的NSFVIewFolder访问NotesDocument对象时,通常会发生此异常 我正在使用Marshal.ReleaseComObject(NotesDocument)释放NotesDocument的实例;它仍然抛出相同的异常

我正在使用Domino.dll访问C#.NET 2.0中的NSF文件

我使用多线程一次访问4个NSF文件,对于小的NSF文件来说效果很好,但是如果我尝试访问大的NSF文件,我会出现内存不足的异常,并且超过了Notes可以支持的最大内存段数

当我在while循环中从一个大的NSFVIewFolder访问NotesDocument对象时,通常会发生此异常

我正在使用Marshal.ReleaseComObject(NotesDocument)释放NotesDocument的实例;它仍然抛出相同的异常


我的目标是对大型NSF文件(可能是GB)一次访问多个NSF文件(一次最多4个NSF文件)。

我不熟悉C#接口,但对于Java,在继续下一个文档之前,需要显式调用notes文档上的recycle()方法。否则,将意味着与notes文档关联的资源将无法清理。

您的问题与此问题类似。您使用哪个版本的Domino访问数据库?您需要有效地销毁该对象。我不认为ReleaseComObject有效地释放了服务器将用于向COM提供数据的内存,因此内存不足

我建议您尝试使用Java来实现这一点,因为内存管理的支持比COM好得多。
本文和一篇文章应该有助于为Domino编写Java。通过一个简单的例子,您可以了解如何完成文档收集。

请不要缩进您的问题。构思和设计Lotus Notes的人应该非常聪明,甚至很有天赋。那么WTF发生了什么?