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.

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top