我需要两个事件循环:一个用于Windows (或Linux ),另一个用于Qt事件队列QCoreApplication::exec() (或QApplication::exec()甚至QEventLoop::exec())。
我可以同时使用单线程吗?或者我应该为其中一个创建一个单独的线程?在后一种情况下,应该如何安排QObject和“窗口”/“服务”线程之间的交互过程?
Windows服务需要https://msdn.microsoft.com/en-us/library/windows/desktop/ms632599(v=vs.85).aspx#message_only和窗口过程来接收和处理来自Windows的消息,或者使用service函数。我希望能够处理来自Windows和Qt的两类事件。
我可以使用QEventLoop/QCoreApplication/QApplication::processEvents来处理来自Windows的事件之间的Qt事件吗?它如何影响服务响应和QTimer响应?
发布于 2017-04-26 13:27:43
尝试使用QtService库。QtService用于开发Windows和Unix:https://github.com/qtproject/qt-solutions/tree/master/qtservice
或者,您也可以像在QtService库中一样实现它:win.cpp#L556
发布于 2017-04-26 12:52:01
Qt事件循环在所有平台上集成本机通知/事件。nativeEventFilter是当您愿意时对本机事件的反应。
https://stackoverflow.com/questions/43631824
复制相似问题