我最近使用winscard库实现了与ACR122的通信。 我使用了一个计时器来调用所有相关的API调用 1. SCardEstablishContext 2. SCardListReaders等获取读者的状态
我将计时器的间隔时间保持为五(5)秒。因此,这会使设备状态延迟5秒。
任何人都可以向我推荐一种更好的方法,例如"基于事件的触发器"避免这种延迟并一起移除计时器。
答案 0 :(得分:0)
以下是我实施的几个项目中遵循的一般方法。希望它
帮助。
1)初始化连接到系统的所有阅读器(使用apis,如
SCardEstablishContext和SCardListReaders)
2)从一个线程开始在每个读者上轮询卡片(使用类似
的api)SCardGetStatusChange)。我会为每个读者提供一个帖子。当读卡器检测到卡
时放在它上面引发事件以进行卡交易。
3)处理轮询线程引发的事件以进行卡片交易(使用apis,如
使用SCardConnect SCardTransmit)
我认为上述方法可以帮助您摆脱计时器并优化性能。