为什么需要处理图形?

时间:2010-11-16 03:50:20

标签: c# winforms graphics gdi

为什么Graphics需要处理? 还有PenSolidBrush

2 个答案:

答案 0 :(得分:3)

这些对象是非托管资源的包装器,特别是GDI +对象。如果未明确处理这些对象,则GC需要调用其终结器。这将延迟回收其他GC的资源。*这意味着您的应用程序将使用超出必要的资源。

更新:澄清上面的措辞加上...... *当GC遇到具有终结器的对象时 - 假设未在Dispose()方法中调用GC.SuppressFinalize() - 它将终结器排队,以便在将来某个时间在终结器线程上运行。因此,对象使用的内存和资源至少保持在当前运行的GC之后。

答案 1 :(得分:3)

简单的答案是,他们实施'IDisposable',因此需要处理它们。

稍长的答案是他们消耗需要释放的非托管资源。通过直接调用dispose(或使用'using'语句),您可以释放这些资源,而不是等待GC为您执行此操作。