0

我目前在 C dll 的包装类中使用静态委托,以避免指向不安全函数的委托被垃圾收集。
在我现在需要支持该类的多个实例之前,这一直很好。一种解决方法可能是保留静态代表的列表,但我想找到一个更简单的解决方案。

4

2 回答 2

3

为了防止对象被收集,您必须维护对它的引用。

静态类中的静态成员在应用程序生命周期中存在。

例如班级成员,根据您的班级设计和项目设计,您可能会采取不同的方法。维护静态列表可能不是一个坏主意。

我唯一的问题是你怎么能确定代表正在被收集。因为,如果您能够访问它,那么您必须维护它的引用。在这种情况下,它必须保留在内存中。

于 2011-01-28T08:37:39.417 回答
1

我认为您犯了一个错误:静态变量存在于应用程序的整个生命周期中,它们在应用程序运行时永远不会被 GC。

于 2011-01-28T08:34:43.110 回答