2009-06-29 6 views
-1

J'ai une requête Web qui peut prendre de 30 à 90 secondes dans certains cas (la plupart du temps, elle est terminée en 2-3). Actuellement, le logiciel semble avoir été bloqué si la requête prend autant de temps.Traitement d'un webrequest de longue durée

Je pensais que je pourrais utiliser l'arrière-plan pour traiter le webrequest dans un fil séparé. Cependant, le logiciel doit attendre que la demande soit traitée avant de continuer. Je sais comment configurer le travailleur de fond. Ce dont je ne sais pas, c'est comment gérer l'attente sur la demande de traitement. Dois-je créer une minuterie pour vérifier les résultats jusqu'à ce que la demande expire ou soit traitée?

Répondre

0

Je n'utiliserais pas de minuterie. Au contraire, lorsque la requête Web se termine sur le thread de travail, utilisez un appel à la méthode Invoke sur un contrôle dans l'interface utilisateur pour mettre à jour l'interface utilisateur avec le résultat (ou envoyer une sorte de notification).

Questions connexes