我目前在C dll的包装类中使用静态委托,以避免指向不安全函数的委托被收集。
这个工作正常,直到我现在需要支持该类的多个实例。解决方法可能是保留静态委托的列表,但我想找到一个更简单的解决方案。
答案 0 :(得分:3)
为了防止收集对象,您必须保留对它的引用。
静态类中的静态成员可以使用一段时间。
例如,班级成员,根据您的班级设计和项目设计,您可以采取不同的方法。维护静态列表可能不是一个坏主意。
我唯一的问题是你如何能够确定是否正在收集代表。因为,如果您能够访问它,那么您必须保留它的引用。在这种情况下,它必须留在记忆中。
答案 1 :(得分:1)
我认为你犯了一个错误:静态变量存在于应用程序的整个生命周期中,当应用程序运行时,它们永远不会被GC。