.net中对内存管理的几个问题

我已经阅读了一些关于.net内存管理的想法,但是以下三个问题没有回答给我

  • 非托管资源获取用于托管资源的相同托管堆中的内存以及谁分配它(OS或CLR或其他)?
  • 在托管资源R上调用Dispose()方法是否会立即释放由此R占用的内存以及由R占用的所有其他非托管资源
  • 谁清除非管理资源占用的内存(OS或CLR或其他)。
  • 欢迎任何帮助。


    1)。 创建非托管资源的代码。 例如,Win32文件句柄由OS内核分配。

    2)。 这取决于执行Dispose方法来释放非托管资源。 例如,它可以调用Win32 CloseHandle来关闭文件句柄。 托管资源仍然存在,只能通过GC释放。

    3)。 配置方法实现,通常调用本地函数。

    链接地址: http://www.djcxy.com/p/54535.html

    上一篇: Few Questions to Memory management in .net

    下一篇: Do you need to dispose of objects and set them to null?