.net对接大华SDK遇到的问题记录

.net对接大华SDK遇到的问题记录

项目场景:

通过后台数据调用大华异步抓图及视频告警监测功能


问题描述:

.net对接大华sdk时,所有用到回调函数的功能会报错“Process terminated. A callback was made on a garbage collected delegate of type ‘NetSDKCS.fMessCallBackEx::Invoke’.”,并且直接导致程序崩溃

.net对接大华SDK遇到的问题记录


原因分析:

通过查找大华官方SDK资料,得知“SDK所有回调都是子线程,JNA是弱引用,建议回调函数对象写成全局静态,防止被系统回收”,即所有回调需要定义为静态全局变量,否则会被系统回收


解决方案:

所有回调需要定义为静态全局变量,否则会被系统回收