小编Tad*_*yan的帖子

是否可以使用QThread实现轮询而不进行子类化?

我有一个类,它是一些设备的抽象.

class Device  
{  
public:  
  ...  
  void Start();  
  void Stop();  
  void MsgLoop();

signals:
  void sMsgArrived();
}  
Run Code Online (Sandbox Code Playgroud)

从GUI线程调用Start()和Stop().Start()开始运行MsgLoop()的新线程.它看起来像这样:

void MsgLoop()  
{
   forever {  
      if(SUCCESS == ReadMsg()) //synchronous, non-blocking
      {
        ProcessMsg(); //quite fast
        emit sMsgArrived(); //this signal is connected with a slot in GUI thread  
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

当调用Stop()时,程序应该从MsgLoop()返回并停止该线程.如何在没有子类化的情况下使用QThread实现它?

c++ qt multithreading qthread

3
推荐指数
1
解决办法
5499
查看次数

标签 统计

c++ ×1

multithreading ×1

qt ×1

qthread ×1