Pregunta

Tengo un QThread que contiene un Qudpsocket (el socket es miembro no local a QTHREAD :: run (), tal vez debería cambiar eso de lo que estoy leyendo). Este Qthread se instancia en mi clase QMainWindow, es decir, el hilo de la GUI (no estoy llamando a Mover to Thread). ¿Todavía es seguro usar WaitForreadyRead o es absolutamente necesito instanciar el QThread en Main.cpp o llamar a Movetothread () para que sea seguro de hilo? Estoy recibiendo una excepción doble gratuita intermitente dentro de la llamada a WaitForreadyread en la forma actual de hacerlo (a veces no lo entiendo durante días a veces después de 3 minutos).

¿Fue útil?

Solución

Eche un vistazo al Documentación QT por QUdpSocket. Hay una nota que explica que la clase es reentrante. También de la Documentación QT:

... Se dice que una clase es reentrante si sus funciones miembros se pueden llamar de forma segura desde múltiples hilos, siempre que cada hilo use una instancia diferente de la clase.

Por lo tanto, para responder a su pregunta, realmente no importa cuál sea el padre de la QThread es, siempre y cuando te asegures de que el QUdpSocket La instancia que está utilizando se instancia dentro del contexto del hilo en el que lo está utilizando.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top