QT学习之线程和定时器

我做了一个读卡工具,有个连续读卡功能,读卡时还得一直寻卡,寻到卡后才能读;为避免死等,可以在连续读卡中去停止读卡,所以需要写一个线程用来读卡;
我使用的是moveToThread方式;
我有个窗口程序,有个读卡类;我希望读卡时是个线程在操作,所以我在窗口上定义了一个线程对象:

//在类中定义一个QThread对象m_thread
QThread m_thread;`

并把读卡器类设置到线程上并启动线程:

    // 启动读卡线程
    readIdCard.moveToThread(&m_thread);
    m_thread.start();

读卡器类中,新增一个定时器,并且设置定时器超时就掉一下读卡接口readCardOnce;

timer = new QTimer(this);
timer->setInterval(500);
connect(timer, SIGNAL(timeout()), this, SLOT(readCardOnce()));

readCardOnce接口:

if(!m_isRead){
   
    // 设此标记是为了能即使停定时器
    traceLogLib.outPutMsg(QtDebugMsg, "ReadIdCard::readerCardOnce invoke end. m_isRead = false");
    return
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值