Question

J'ai un tableau de thread dans lequel chaque thread obtient une tâche de recherche à partir d'un gestionnaire de recherche de threads - à l'aide d'un module de producteur / consommateur - et lorsqu'il finit, il attend que le signal suivant du fil du gestionnaire de recherche.La recherche est effectuée via Web - et il faut une durée importante (principalement la partie de données HTML). Mon problème est que lorsque l'utilisateur sélectionne pour arrêter les recherches en cours et pour démarrer un nouvel ensemble de recherches, toutes les recherches sont occupées lors de la recherche Web précédente, l'utilisateur attend actuellement jusqu'à ce que les recherches sans plus longues pertinentes se terminent leur tâche etcommencer le nouveau.

Ma question est - comment puis-je commencer immédiatement avec la nouvelle tâche pertinente? Je ne pouvais pas utiliser un drapeau (pour indiquer le fil de sauter la recherche) car la longue attente est destinée à la méthode HTTP Obtenir. Existe-t-il un moyen d'arrêter de manière agressive la méthode et de la démarrer depuis le début?(Je préfère ne pas utiliser de nouveau thread ...)

Merci d'avance,

shmouel.

Était-ce utile?

La solution

I found a similar stackoverflow thread that should be of use. The trick is to use BeginGetResponse instead of GetResponse in order to call an abort on the HTTP request: http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.abort.aspx

Link to original thread: Killing HttpWebRequest object using Thread.Abort

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top