.NET Bitmap类使用GDI +
我想知道我可以创建多少个位图。
创建太多位图时内存是否会泄漏?
答案 0 :(得分:2)
只要您使用框架制作它们,内存就不会泄露。 Bitmap类的制作方式是实例在完成时自行处理,就像任何自尊的IDisposable一样,所以即使忘记Dispose也不会导致问题。
至于你可以制作多少,这取决于你需要多少记忆。
答案 1 :(得分:2)
每个会话的GDI句柄限制为65536。见http://msdn.microsoft.com/en-us/library/ms724291(VS.85).aspx
答案 2 :(得分:2)
每个会话理论上限制为65,536个GDI句柄。但是,每个会话可以打开的最大GDI句柄数通常较低,因为它受可用内存的影响。
来源:http://msdn.microsoft.com/en-us/library/ms724291%28VS.85%29.aspx
答案 3 :(得分:0)
Bitmap是一个GDI +对象,您在系统中获得的对象数量有限。当然你可以调整系统。我认为你不会出现内存泄漏,但如果你超出了这个限制就会出现系统异常。
答案 4 :(得分:0)
您可能会面临内存泄漏问题,但您可以通过编写简单的代码来解决它
using (frame) {
frame.Save(outStream, jpegCodec, parameters);
}
答案 5 :(得分:0)
Windows XP和Vista - 默认限制
Windows XP和Vista中的默认限制为10,000。您可以从“任务管理器”
监视应用程序具有的GDI对象的数量http://msdn.microsoft.com/en-us/library/ms724291(VS.85).aspx
注意:我测试了一个带有HashMorePages = True的PrintPreview,直到它抛出异常(大约4800页),每个页面需要2个Gdi +对象。