J'essaie d'utiliser la classe QTQNetworkAccessManager pour gérer certains téléchargements dans une application C++/QT multithread.En utilisant un QNetworkAccessManager.get, comment puis-je décider d'abandonner?
Sur le travailleur thread (edit: le thread est séparé pour d'autres raisons en dehors de faire le téléchargement), je voudrais faire un get à un serveur externe et être prêt à recevoir les résultats avec le code:
...
m_nam = new QNetworkAccessManager(this);
QNetworkReply *reply = m_nam->get(request);
connect(m_nam, SIGNAL(finished(QNetworkReply *)), this,
SIGNAL(finished(QNetworkReply *)));
...
Mais je pourrais décider, avant la fin du téléchargement, que le résultat ne m'intéresse pas. Donc, je voudrais mettre en place un moyen de déconnecter la connexion d'un autre thread en émettant un signal do_abort().
Ce qui se propose est:
connect(this, SIGNAL(do_abort()), reply, SLOT(abort()));
Mais je ne pense pas que cela fonctionne parce que abort n'est pas de fente QNetworkReply.
Alors, comment puis-je définir un mécanisme dans lequel je peux arrêter ce téléchargement à partir d'un autre thread? Je pourrais sous-classer QNetworkReply et donner à cette classe l'emplacement approprié. Mais j'aimerais comprendre la situation aussi.