0

我正在包装一些具有一些手动资源处理的本机代码。我希望我的 C# 包装器在不将责任转嫁给客户的情况下处理此问题。这是可能的,还是我不可避免地必须实现 IDisposable 并将责任转嫁给客户端代码?

即是否可以编写自动处理托管资源的类?

如果我说这些资源的确定性处理不是问题,我只关心它们被安全释放怎么办?我很高兴让 GC 通过终结器安排他们的发布。

4

1 回答 1

1

这显然是终结器的设计目的。写一个来释放非托管资源,CLR会在对象被垃圾回收后自动调用它。您当然可以实现 IDisposable 以使其尽早发布,但这不是必需的。如果资源分配没有影响,可以跳过。您描述的类型与 COM 对象的类型相匹配。谁的 .NET 包装器也没有实现 IDisposable。

密切注意程序的基本资源使用情况,以确保这不是问题。如果您对正在使用的实际资源不够了解,可能很难判断。

于 2013-01-22T19:35:32.523 回答