5

我有一个 ummaged 代码使用的 c# com 类。我可以调试它,但我不知道何时释放对象。如果它已在 c++ 中实现 desctur 将被调用,在 c# 上它将被释放到 GC。有什么方法可以追踪那一刻吗?提前致谢。

4

1 回答 1

1

维护非托管资源的托管类型应实现IDisposable接口。这告诉您的代码的使用者,当他们使用完对象时,他们需要调用Dispose()您的对象的实例(即,using尽可能将它们包装在一个块中)。

的正确实现IDisposable将在其终结器中释放本机资源,但客户端可以Dispose()比确定性释放非托管资源更快地调用。无论哪种方式,您都可以避免泄漏,但最好尽快调用Dispose()

这是一个详细说明该过程的SO问题。

于 2012-04-16T18:45:44.733 回答