我有一个包含QUDPsocket的QThread(套接字不是QThread :: run()本地的成员,也许我应该从我正在阅读的内容中改变它)。这个QThread在我的QMainWindow类中实例化,即GUI线程(我没有调用移动到线程)。使用waitForReadyRead是否仍然安全,或者我绝对需要在main.cpp中实例化QThread或调用moveToThread()以使其成为线程安全的。在目前的方式中,我在waitForReadyRead调用中得到了间歇性的双重免费异常(有时候我有时会在3分钟后得到它几天)。
答案 0 :(得分:1)
查看QUdpSocket
的{{3}}。有一个注释说明该类是可重入。同样来自Qt documentation:
...如果一个类可以从多个线程安全地调用它的成员函数,那么它被认为是可重入的,只要每个线程使用该类的不同实例。
因此,为了回答你的问题,QThread
的父级是什么并不重要,只要你确保你正在使用的QUdpSocket
实例在上下文中被实例化。你正在使用它的线程。