如何正确处理对象传递给DllImport方法

时间:2014-10-06 19:02:25

标签: c# interop dllimport

如何将对象传递给非托管代码会影响其垃圾回收?我是否需要明确地处理对象?

我正在设置一个非托管串口,我必须将“设备控制块”(DCB)对象传递给非托管代码,作为设置端口的一部分。现在,当我处理端口对象时,我还需要做任何其他事情来处理DCB吗?

1 个答案:

答案 0 :(得分:0)

垃圾收集仅适用于托管资源。 IDisposable模式和Dispose方法有一个原因。它用于处理非托管资源。像FileReaders这样的东西,OS文件处理程序将是非托管代码,可通过.Net框架的托管代码访问。处置FileWriter / Reader实际上会释放非托管资源的句柄。

在您的情况下,您无需对DCB执行任何操作。它似乎没有持有任何非托管资源。它只是传递给非托管资源。