如何将 QMutexLocker 加锁后异步释放?
现在我遇到这么一个问题:PC接一读卡器,原有一个程序按F9读卡(没有源程序,不能更改)。现在开发的程序按F11读卡。读卡器任一时刻只能有一个线程读卡,不能并发读卡。
现在在F11程序里,有3个异步过程可读卡:1、通过定时器周期性的定时读卡;2、通过文件系统变化触发的事件读卡;3、通过F11热键读卡。当程序检测到按下F9后,必须禁止F11的所有线程读卡。
当前的做法是在F11程序中使用键盘HOOK检测到F9热键后,立即发送 sendEvent 给主程序,主程序成功执行 QMutexLocker 锁定读卡互斥量后就立即返回,控制转交键盘HOOK过程,发送F9键盘消息,激活F9程序读卡,该读卡时间定会在2s内结束,所以F11程序锁定读卡时间在2s后释放QMutexLocker。因此 Mutex 加锁后只能异步释放,这个过程如何处理?能否给个思路?