平时工作中出现问题记录下来。调用第三方dll函数传入回调函数,程序运行一会后就崩溃。程序没有日志,查看系统日志。原因回调函数被自动垃圾回收。
//回调委托
private delStaFun del_stafun;
//调用函数
var binit = startUdpSvr(ServiceConfig.Port, del_stafun);
加入如下代码:
//引用指定对象,使其从当前例程开始到调用此方法的那一刻为止均不符合进行垃圾回收的条件。
GC.KeepAlive(del_stafun);