1

我最近使用 winscard 库实现了与 ACR122 的通信。我使用计时器来调用所有相关的 API 调用,例如 1. SCardEstablishContext 2. SCardListReaders 等以获取阅读器的状态

我已将计时器的间隔保持在五 (5) 秒。因此,这会使获取设备状态延迟 5 秒。

谁能建议我一种更好的方法,例如“基于事件的触发器”来避免这种延迟并一起删除计时器。

4

1 回答 1

0

以下是我在实施的几个项目中遵循的一般方法。希望它

有帮助。

1)初始化所有连接到系统的阅读器(使用类似的api

SCardEstablishContext 和 SCardListReaders)

2)从一个线程开始轮询每个阅读器上的卡(使用类似的api

SCardGetStatusChange )。我会为每个读者准备一个线程。当读卡器检测到卡片时

放置在它上面会引发一个事件来进行卡交易。

3)处理轮询线程引发的事件以进行卡片交易(使用apis like

SCardConnect SCardTransmit 使用)

我认为上述方法将帮助您摆脱计时器并优化性能。

于 2014-09-16T10:29:41.567 回答