Вопрос

У меня есть массив потока, в котором каждый поток получает поисковую задачу из диспетчера поиска потоков - с помощью модуля по потоке / потребителю - и когда он завершает его, он ждет до следующего сигнала от нити диспетчера поиска.Поиск выполняется через Интернет - и требуется значительное количество времени (в основном получение деталей HTML). Моя проблема заключается в том, что пользователь выбирает, чтобы остановить текущие поиски, и запустить новый набор поисков, все поиски заняты во время предыдущего веб-поиска, поэтому в настоящее время пользователь ждет, пока не соответствует дополнительным поисковым поискам, иначать новый.

Мой вопрос - как я могу начать сразу с новой соответствующей задачей? Я не мог использовать флаг (указать нить, чтобы пропустить поиск), поскольку долгое ожидание для получения HTTP. Есть ли способ агрессивно остановиться методом и начать его с самого начала?(Я предпочитаю не использовать новую тему ...)

Спасибо заранее,

shmouel.

Это было полезно?

Решение

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top