关于托管资源和非托管资源有许多问题。我理解了这两者的基本定义。然而,我很难知道何时资源或对象是托管的还是非托管的。
当我想到非托管资源时,我往往会想到不直接属于.NET的本机代码,例如pinvoke或封送资源。我通常会认为旨在与将使用硬件的某些东西进行接口的资源,例如文件句柄或网络连接也是非托管的。
那么,包装本机非托管资源的.NET对象呢,例如FileStream
。
FileStream
必须使用非托管资源,但是当我实现IDisposable
模式时,我应该将其视为托管资源还是非托管资源?
到目前为止,我一直认为如果对象实现了IDisposable
,则它是托管的。那么我如何知道IntPtr
应该被处理为非托管资源呢?
IDisposable
对象。 - supercat