我有一个类,它是一些设备的抽象.
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实现它?