我正在为我的应用程序能够从HID条形码阅读器设备读取的模块工作。
它是一个Windows应用程序(在Windows10中测试过),我使用的是Visual C++。
为了阅读,我获取设备路径并使用FILE_FLAG_OVERLAPPED调用ReadFile,然后使用WaitForMultipleObjects等待讲座。如果我想要关闭应用程序,或者用户选择了另一个设备,那么我会触发第二个取消事件并调用CancelIO。
到目前为止,good...everthing运行得很好。
现在,我想要检测用户是否删除了选定的HID设备...我注册了一个窗口并捕获DeviceChange事件。当我取消课程中的阅读并调用CancelIO时,这个函数需要一分钟以上的时间才能返回。在这种情况下(设备删除),我尽量不调用CancelIO,可以删除设备并再次连接它,当我关闭应用程序时,它会works....but,然后线程(负责读取的线程)需要一分钟以上的时间才能结束。所以我想,在某种程度上,应用程序正试图取消设备读取。
所以我的问题is....what当我检测到我正在读取的设备被移除时,我应该做什么?
提前谢谢。
发布于 2015-12-01 01:06:29
CloseHandle.main(),并在需要删除设备的地方有一个MessageBox()。https://stackoverflow.com/questions/33737261
复制相似问题