Subprocesos en una aplicación PyQt: ¿Usar subprocesos Qt o subprocesos de Python?

| | | | | | | | | | | | | | | | | | | |

Estoy escribiendo una aplicación GUI que recupera datos regularmente a través de una conexión web. Dado que esta recuperación lleva un tiempo, esto hace que la IU no responda durante el proceso de recuperación (no se puede dividir en partes más pequeñas). Es por eso que Me gustaría subcontratar la conexión web a un subproceso de trabajo separado.

[Sí, lo sé, ahora tengo dos problemas.]

De todos modos, la aplicación usa PyQt4, así que me gustaría saber cuál es la mejor La elección es: ¿Usar subprocesos de Qt o usar el módulo Python threading? ¿Cuáles son las ventajas/desventajas de cada uno? ¿O tienes una sugerencia totalmente diferente?

Editar (recompensa): Aunque la solución en mi caso particular probablemente sea usar una solicitud de red sin bloqueo como Jeff Ober y Luk√°≈° Lalinsk√Ω sugirió (por lo que, básicamente, dejar los problemas de concurrencia a la implementación de la red), todavía me gustaría una respuesta más detallada a la pregunta general:

¿Cuáles son las ventajas y desventajas de usar PyQt4? s (es decir, Qt"s) sobre hilos nativos de Python (del módulo threading)?


Editar 2: Gracias a todos por ustedes respuestas. Aunque no hay un 100% de acuerdo, parece haber un consenso generalizado de que la respuesta es "usar Qt", ya que la ventaja de eso es la integración con el resto de la biblioteca, sin causar desventajas reales.

Para cualquier persona que desee elegir entre las dos implementaciones de subprocesos, le recomiendo que lea todas las respuestas proporcionadas aquí, incluido el subproceso de la lista de correo de PyQt que abad enlaces a.

Hubo varias respuestas que consideré para la recompensa; al final, elegí abbot's para la referencia externa muy relevante; sin embargo, estuvo cerca.

Gracias de nuevo.