Pergunta

Eu tenho uma matriz de thread na qual cada linha recebe uma tarefa de pesquisa de um gerenciador de pesquisa de thread - usando um módulo de produtor / consumidor - e quando ele terminar, ele aguarda até o próximo sinal do thread do Pesquisar.A pesquisa é executada via web - e é preciso uma quantidade significativa de tempo (principalmente a obtenção da parte de dados HTML). Meu problema é quando o usuário seleciona para interromper as pesquisas atuais e iniciar um novo conjunto de pesquisas, todas as pesquisas estão ocupadas durante a pesquisa da Web anterior, portanto, atualmente, o usuário aguarda até que as pesquisas não mais relevantes terminem sua tarefa ecomeçar o novo.

Minha pergunta é - como posso começar imediatamente com a nova tarefa relevante? Não pude usar uma bandeira (para indicar o segmento para pular a pesquisa), já que a longa espera é para o método Get HTTP. Existe uma maneira de parar de forma agressiva o método e começar desde o começo?(Eu prefiro não usar nova linha ...)

Agradecemos antecipadamente,

shmouel.

Foi útil?

Solução

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top