在一个项目的开发过程中遇到一个问题描述如下:
同一个刷卡器线程,放在前面软件启动的地方拉起来测试没有任何问题,放在后面由一个单独的入口点击调用会出现查找不到刷卡器设备的错误提示。
经分析后发现放后面的时候由于软件启动时拉起的一个线程占用了串口,虽然在后面入口拉起刷卡器线程前结束了该线程,但是串口没有关闭,所以会发生串口占用查找不到后来设备的问题。
解决方法是:
在后来的拉起刷卡器线程之前不仅结束软件启动时调用的线程,还要额外关闭掉之前线程开启的串口。
由于写法不同关闭的方式也会有差异,本例中关闭的方式为objTheSecondIdJL.CloseDev();
直接调用说明文档的关闭端口函数。