4
我有一个Qt/C++应用程序,通常的GUI线程和一个网络线程。网络线程正在使用一个外部库,它有自己的基于select()的事件循环...所以网络线程没有使用Qt的事件系统。Qt跨线程调用
目前,网络线程只是在发生各种事件(如连接成功)时发出()s信号。我认为这可以正常工作,因为信号/插槽机制正确地为GUI线程发布信号。
现在,我需要网络线程能够调用GUI线程来提出问题。例如,网络线程可能要求GUI线程请求建立一个对话框来请求密码。
有没有人知道这样做的适当机制?
我现在最好的想法是让网络线程在发送一个对象后使用QWaitCondition等待(emit passwordRequestedEvent(passwordRequest);
。passwordRequest对象将在特定的QWaitCondition上有一个句柄,所以可以在做出决定时发出信号。 。
是这种明智的做法?还是有其他的选择吗?