如何将对象传递给非托管代码会影响其垃圾回收?我是否需要明确地处理对象?
我正在设置一个非托管串口,我必须将“设备控制块”(DCB)对象传递给非托管代码,作为设置端口的一部分。现在,当我处理端口对象时,我还需要做任何其他事情来处理DCB吗?
答案 0 :(得分:0)
垃圾收集仅适用于托管资源。 IDisposable模式和Dispose
方法有一个原因。它用于处理非托管资源。像FileReaders这样的东西,OS文件处理程序将是非托管代码,可通过.Net框架的托管代码访问。处置FileWriter / Reader实际上会释放非托管资源的句柄。
在您的情况下,您无需对DCB
执行任何操作。它似乎没有持有任何非托管资源。它只是传递给非托管资源。