就我所知,我知道像GC执行集合操作以删除非托管资源以释放称为隐式清理的内存。通过使用'USING'关键字,我们可以做到明确的清理,但是我怀疑GC是如何释放管理资源的。GC如何释放C#中的管理资源
0
A
回答
2
为了让GC清理管理资源,您不必做任何特殊的事情。在没有引用留给您的托管资源后,GC将在某个时间清理它。
如果您的托管资源拥有非托管资源,则可以实施IDisposable界面并调用Dispose
方法,您可以在其中显式清理非托管资源。 using
声明使得使用该接口非常容易,因为即使在例外的情况下,当代码存在using
块时它也会自动调用Dispose。
您可以查看Garbage Collection上的MSDN文档。
编辑:根据上面的评论。
您可能通过定义终结符(例如〜MyClass())覆盖Object.Finalize
,但不知道什么时候它将由GC调用。一次性使用IDisposable。终结者与处置here更多信息。
相关问题
- 1. 在C#中释放资源
- 2. Java finalize:即使有错误,我如何释放非GC资源
- 3. 如何释放资源?
- 4. IDE如何释放资源?
- 5. 释放Objective-C中的静态资源
- 6. 如何释放Spring bean中的资源?
- 7. 如何管理CPU资源
- 8. SFML释放资源
- 9. Php资源释放
- 10. 如何释放HttpPostedFileBase使用的资源?
- 11. 如何释放进程的资源
- 12. C++中的资源文件管理
- 13. c + +中的OpenMP和资源管理
- 14. c中的BackgroundWorker和资源管理器#
- 15. 替代异常处理释放资源
- 16. 资源管理
- 17. 资源管理器如何获取HAWQ中的资源?
- 18. 如何避免在C++中自动释放资源?
- 19. 释放C++资源和fork-exec?
- 20. 释放OpenSSL的资源:SSL_CTX_free
- 21. 如何防止NSWindow释放资源?
- 22. 如何强制释放资源?
- 23. 如何正确释放GDI资源?
- 24. XCode中的资源管理
- 25. tomcat中的资源管理
- 26. 拖放从资源管理器中删除我的源文件
- 27. 关机时释放资源
- 28. Java文件释放资源
- 29. 当Android资源被释放?
- 30. PHP/DOMDocument:unset()不释放资源
你是什么意思的“如何”?看看[MSDN文档](http://msdn.microsoft.com/en-us/library/ee787088.aspx#conditions_for_a_garbage_collection),并让我们知道你是否有任何具体问题。 –
感谢发布,如何像非托管的finalize方法的手段是有任何方法来管理源。 – nag
嘿伊伦你能否请你发表你的答案,然后我将它标记为答案。 – nag