最近在调试海康SDK时,遇到了标题写的这个错误。
A callback was made on a garbage collected delegate of type 'XXX.CHCNetSDK+RemoteConfigCallback::Invoke'.
Visual Studio 调试模式下,显示 你的应用进入了中断状态,但当前未执行任何受选定调试引擎支持的代码(例如,仅在执行本机运行时代码)。
和 “System.ExecutionEngineException”类型的未经处理的异常在 未知模块。 中发生
,完全无法看出问题的原因。
后查到 https://stackoverflow.com/questions/44546875/getting-the-error-a-callback-was-made-on-a-garbage-collected-delegate-of-type,了解到是因为在调用海康SDK时,传入了一个回调函数,此回调函数会在调用完SDK时自动释放掉,所以SDK在回调过程中报错。
知道了原因,就好修改了,声明一个全局的委托变量来作为回调函数就可以了。