• 4838阅读
  • 6回复

线程中能像vxvorks线程一样,阻塞并等待事件吗? [复制链接]

上一主题 下一主题
离线celerylxq
 

只看楼主 倒序阅读 楼主  发表于: 2015-09-08
想在线程的run函数中等待某个事件,等到了才执行可以怎么实现?
离线llong

只看该作者 1楼 发表于: 2015-09-08
QWaitCondition
或者采用moveToThread的方式,采用信号触发
离线celerylxq

只看该作者 2楼 发表于: 2015-09-08
回 llong 的帖子
llong:QWaitCondition
或者采用moveToThread的方式,采用信号触发 (2015-09-08 15:36) 

不是我想知道的答案,但还是谢谢,
我希望实现类似如下操作:在线程的run中等待某个信号,若此信号未到达则挂起当前线程
if (my_serialport->waitForReadyRead(5))  //50ms
    {
        while (my_serialport->waitForReadyRead(5))
        this->msleep(20);
        requestData = my_serialport->readAll();
        emit(this->comRecive());
    }

离线llong

只看该作者 3楼 发表于: 2015-09-08
为什么一定要集成QThread重写run,这种情况使用moveThread再适合不过
离线liulin188

只看该作者 4楼 发表于: 2015-09-08
QWaitCondition
本来就是合适的,只是楼主不会用,也不想去研究

https://wiki.qt.io/Qt_5.12_Release
https://wiki.qt.io/New_Features_in_Qt_5.12
https://wiki.qt.io/Qt_5.12.0_Known_Issues
https://www.qt.io/blog/qt-5.13.2-released
https://www.qt.io/blog/qt-creator-4.10.2-released
https://wiki.qt.io/Qt_5.12_Tools_and_Versions
离线celerylxq

只看该作者 5楼 发表于: 2015-09-09
回 liulin188 的帖子
liulin188:QWaitCondition
本来就是合适的,只是楼主不会用,也不想去研究
 (2015-09-08 21:39) 

接受批评,是该好好研究下,昨天就百度简单看了下QWaitCondition 的用法。。。
离线tylan

只看该作者 6楼 发表于: 2015-09-09
你也可以自己使用信号量的方式,估计信号量的方法能够满足你的需求。
快速回复
限100 字节
 
上一个 下一个