【发布时间】:2011-04-26 09:57:11
【问题描述】:
关于我应该如何处理IDisposable 对象序列有什么建议吗?
例如,我有一个构建IEnumerable<System.Drawing.Image> 序列的方法和
在某些时候,我需要手动处理这些对象,否则可能会导致一些泄漏。
现在,有没有办法将 Dispose() 调用绑定到垃圾收集器操作,因为我希望这些对象在其他代码部分不再可访问时立即处理? p>
**或者你可以给我一些其他的建议吗? **
一般来说,这似乎是同样的问题,例如,在没有共享指针的非托管C++中,你可以有一个方法:
SomeObject* AllocateAndConstruct();
如果您不使用代码合同或未在 cmets 中声明某些内容,则您无法确定何时处置它。
我猜一次性物品的情况也差不多,但我希望有一个合适的解决方案。
【问题讨论】:
-
GC 在不再可访问后不会立即收集垃圾。收集此类对象可能需要一段时间
标签: c# collections dispose disposable