C # Metodo del thread Reset problema
-
15-11-2019 - |
Domanda
Ho un array di filettatura in cui ogni thread riceve un'attività di ricerca da un gestore di ricerca del filo - utilizzando un produttore / modulo consumer - e quando lo termina, attende fino al segnale successivo dal thread del gestore di ricerca.La ricerca viene eseguita tramite Web - e richiede un tempo significativo (principalmente il ricevitore di dati HTML). Il mio problema è quando l'utente seleziona per interrompere le ricerche correnti e di avviare una nuova serie di ricerche, tutte le ricerche sono occupate durante la ricerca Web precedente, quindi attualmente, l'utente attende fino a quando le ricerche no-rilevanti non terminano il loro compito eInizia il nuovo.
La mia domanda è - Come posso iniziare immediatamente con il nuovo compito rilevante? Non ho potuto usare un flag (per indicare il thread per saltare la ricerca) poiché la lunga attesa è per il metodo Ottieni HTTP. C'è un modo per fermarsi aggressivamente il metodo e di avviarlo dall'inizio?(Preferisco non usare il nuovo filo ...)
Grazie in anticipo,
shmouel.
Soluzione
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