Slt, j'ai essayé de faire passer une QRunnable en éventloop mais le compile n'est pas d'accord... Dès que je mets exec(); dans le run(), il me dit qu'il n'a pas cette fonction. Est-ce normal ?
Merci d'avance !
Slt, j'ai essayé de faire passer une QRunnable en éventloop mais le compile n'est pas d'accord... Dès que je mets exec(); dans le run(), il me dit qu'il n'a pas cette fonction. Est-ce normal ?
Merci d'avance !
Salut,
Si tu regardes la doc de QRunnable, tu peux constater qu'il n'y a pas de méthode exec(), donc oui c'est normal.
Maintenant un QRunnable est fait pour dénoter une simple tâche (ou élément de tâche). Pourquoi vouloir lancer une boucle d'événement dans une tâche ?
En fais ce QRunnable envoie un fichier à un serveur. Après avoir tout envoyé au serveur, il attends que le serveur lui réponde si tout s'est bien passé ou non. Je peux faire une boucle bien bourrin mais c'est pas joli. Je pensais donc faire un exec() et en sortir dès que le serveur m'a répondu...
Y a-t-il une autre solution ? Si oui, je suis preneur !
Merci d'avance !
On m'a dit que pour un pool de thread, il fallait utiliser des runnable. D'où ceux-ci.
Merci d'avance !
As tu réellement besoin d'un thread de pool?
Si tu as besoin d'evnt loop et de thread, a mon avis il faut mieux utiliser QThread.
Si il n'y as pas d'eventloop et que tu as besoin de thread regarde plutôt QtConcurrent ou les pool de thread.
A mon avis tu n'as pas besoin de thread içi. Les class network de Qt sont asynchrone et utilise l'eventloop pour ses traitements. Donc je ne voie pas trop pourquoi une thread içi.En fais ce QRunnable envoie un fichier à un serveur. Après avoir tout envoyé au serveur, il attends que le serveur lui réponde si tout s'est bien passé ou non.
Quelle classe utilise tu pour envoyer ton fichier?
Quelle classe utilise tu pour recevoir la réponse du serveur?
Je suis passé à ds threads, mon post n'a donc plus d'utilité !
Merci quand même !
Partager