Проблема сброса метода потока C # - PullRequest
0 голосов
/ 19 мая 2011

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

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

Заранее спасибо,

Shmouel.

1 Ответ

0 голосов
/ 19 мая 2011

Я нашел похожий поток stackoverflow, который должен быть полезен.Хитрость заключается в использовании BeginGetResponse вместо GetResponse для вызова прерывания по HTTP-запросу: http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.abort.aspx

Ссылка на исходный поток: Уничтожение объекта HttpWebRequest с использованием Thread.Abort

...