C#线程方法复位问题
-
15-11-2019 - |
题
我有一个线程数组,其中每个线程从线程搜索管理器获取搜索任务 - 使用生产者/消费者模块 - 当它完成它时,它等待直到来自搜索管理器线程的下一个信号。搜索是通过Web执行的 - 它需要大量时间(主要是获取HTML数据部分)。 我的问题是当用户选择停止当前搜索并开始新的搜索集时,所有搜索都忙于上一个Web搜索期间,因此,用户等待在禁止更长相关的搜索结束其任务之前等待开始新的。
我的问题是 - 如何立即开始新的相关任务? 由于长度等待对于Get 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
不隶属于 StackOverflow