我有一个简单的程序,由两个线程组成:
- 由Qt
QApplication::exec
操作的主GUI线程 - 由
boost::asio::io_service
操作的TCP网络线程
TCP事件(如连接或接收数据)会导致GUI中的更改。这些更改通常是在QLabel上使用setText
和隐藏各种小部件。目前,我正在TCP客户端线程中执行这些操作,这似乎非常不安全。
如何正确地向Qt主线程发送事件? 我正在寻找Qt版本的boost::asio::io_service::strand::post
,它将事件发布到boost::asio::io_service
事件循环中。