C # Проблема сброса метода нитей
-
15-11-2019 - |
Вопрос
У меня есть массив потока, в котором каждый поток получает поисковую задачу из диспетчера поиска потоков - с помощью модуля по потоке / потребителю - и когда он завершает его, он ждет до следующего сигнала от нити диспетчера поиска.Поиск выполняется через Интернет - и требуется значительное количество времени (в основном получение деталей 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