0

我初始化了 DeviceWatcher ... 工作正常,我添加了 Honeywell Ring Scanner 它引发了事件 deviceWatcher。当我删除 Honeywell USB Ring Scanner 时,它会引发DeviceWatcher_Removed我为空ClaimedBarcodeScannerBarcodeScanner反对的事件以及DeviceWatcher返回状态为 STOP 的 _Updated

连接 Ring Scanner 后,App 中没有任何反应。如果我重新启动应用程序,它会一直工作,直到我断开连接并连接 Ring Scanner。

我需要BrcodeScanner从应用程序中释放。

Honeywell D75e Win 10 iot我试穿Honeywell Ring Scanner 8620903

我也尝试释放内存...

GC.Collect();
GC.WaitForPendingFinalizers();

我尝试做 Dispose ofClaimedBarcodeScanner

4

1 回答 1

0

当您断开设备时,它会引发设备移除事件,但所有待处理的操作都需要正确取消,并且需要清理所有资源。请参考EventHandlerForDevice中的以下代码。代码中的回调用于显式关闭设备,以清理资源,正确处理错误,并停止与断开连接的设备对话。

    private async void CloseCurrentlyConnectedDevice()
    {
        if (device != null)
        {
            // Notify callback that we're about to close the device
            if (deviceCloseCallback != null)
            {
                deviceCloseCallback(this, deviceInformation);
            }

            // This closes the handle to the device
            device.Dispose();

            device = null;
        }
    }
于 2019-10-09T03:14:18.647 回答