报错信息:托管调试助手 "CallbackOnCollectedDelegate":“对“BLETestForWCHBLEDLL!BLETestForWCHBLEDLL.BLE+pFunDevConnChangeCallBack::Invoke”类型的已垃圾回收委托进行了回调。这可能会导致应用程序崩溃、损坏和数据丢失。向非托管代码传递委托时,托管应用程序必须让这些委托保持活动状态,直到确信不会再次调用它们。”
解决方式:
创建委托实力,保证委托生命周期与程序相同,不会被回收;
BLE.pFunDevConnChangeCallBack pFunDevConnChangeCallBack;
pFunDevConnChangeCallBack = new BLE.pFunDevConnChangeCallBack(BLEConnect);
DeviceConnectHandle = BLE.WCHBLEOpenDevice(devInfo, pFunDevConnChangeCallBack);
之前写法
DeviceConnectHandle = BLE.WCHBLEOpenDevice(devInfo, BLEConnect);