en attente d'un signal

Je suis en train de travailler sur une application qui charge le contenu du fichier vers le serveur.

Pour télécharger le fichier sur le serveur, je suis en utilisant ‘QNetworkAccessManager’ classe. Depuis, il travaille comme asynchrone, je l'ai changé de travail synchrone en utilisant QEventLoop.

Class FileTransfer
{
Public : 
     QNetworkAccessManager mNetworkManager;
     Void Upload(QNetworkRequest request, QIODevice *data)
     {
           responce = mNetworkManager.put(request, data);
           EventLoop.exec();
           ReadResponce(responce);
      }

      Void Stop()
      {
            responce ->close();
      }
}

Dans mon exemple d'application, j'ai 2 windows. 1er pour sélectionner les fichiers et la 2ème pour montrer le progrès.

Lorsque l'utilisateur clic sur le bouton télécharger dans la première fenêtre, la 2ème fenêtre s'affiche et puis j'ai créer le FileTransfer objet et démarrer le téléchargement.

En téléchargeant le fichier si l'utilisateur ferme le formulaire puis dans le destructeur de la fenêtre j'appelle à l'arrêt de l' ‘FileTransfer "après que j'ai supprimer le" FileTransfer’ objet.

Mais ici, le Upload() fonction n'est pas encore terminé, donc il va se planter.

S'il vous plaît aidez-moi à:
Comment attendre dans " stop () fonction jusqu'à ce que l'Upload() la fonction est terminée

OriginalL'auteur Umesha MS | 2010-06-16