2

我有一个包含 QUDPsocket 的 QThread(套接字不是 QThread::run() 的本地成员,也许我应该从我正在阅读的内容中更改它)。这个 QThread 在我的 QMainWindow 类中实例化,即 GUI 线程(我没有调用移动到线程)。使用 waitForReadyRead 是否仍然安全,或者我是否绝对需要在 main.cpp 中实例化 QThread 或调用 moveToThread() 以使其成为线程安全的。我在以目前的方式调用 waitForReadyRead 时遇到间歇性双重免费异常(有时我在 3 分钟后几天都没有得到它)​​。

4

1 回答 1

1

查看Qt 文档以获取QUdpSocket. 那里有一条说明该类是可重入的。也来自Qt 文档

...如果一个类的成员函数可以从多个线程安全地调用,则称该类是可重入的,只要每个线程使用该类的不同实例。

QThread因此,要回答您的问题,只要您确保QUdpSocket您正在使用的实例是在您使用它的线程的上下文中实例化的,那么它的父级是什么并不重要。

于 2010-02-28T09:43:48.720 回答