我有一个类,它是某些设备的抽象。
class Device
{
public:
...
void Start();
void Stop();
void MsgLoop();
signals:
void sMsgArrived();
}
从 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
}
}
}
当调用 Stop() 时,程序应该从 MsgLoop() 返回并停止线程。如何在不继承 QThread 的情况下使用它来实现它?