”类型的已垃圾回收委托进行了回调。这可能会导致应用程序崩溃、损坏和数据丢失。向非托管代码传递委托时,托管应用程序必须让这些委托保持活动状态,直到确信不会再次调用它们。”
最近在写一个dll调用的时候遇见的问题,之前就有遇见过,但是再次遇见的时候竟然不记得之前的解决方法了,这是很不应该的,所以写下来。
最后的解决办法是定义了一个委托类型的成员变量
public static DeleRecvFun func;
然后再将需要进行回调的方法注册到这个委托中
func += fun;
最后再进行回调就没有这个问题了。
在网上看见了很多不同的解决方案,比如使用反射,比如使用keepAlive()
这些都还没有尝试,之后有时间尝试了再更新