我有一个线程数组,其中每个线程从线程搜索管理器获取搜索任务 - 使用生产者/消费者模块 - 当它完成它时,它等待直到来自搜索管理器线程的下一个信号。搜索是通过网络进行的 - 并且需要花费大量时间(主要是获取html数据部分)。 我的问题是当用户选择停止当前搜索并开始一组新的搜索时,所有搜索在上一次网络搜索期间都很忙,所以目前用户等待直到不再相关的搜索结束他们的任务并且开始新的。
我的问题是 - 如何立即开始新的相关任务? 我无法使用标志(表示线程跳过搜索),因为漫长的等待是获取http方法。 有没有办法积极地停止该方法并从一开始就启动它? (我不喜欢使用新线程......)
提前致谢,
Shmouel。
答案 0 :(得分:0)
我发现了一个类似的stackoverflow线程应该是有用的。诀窍是使用BeginGetResponse而不是GetResponse来调用HTTP请求中止: http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.abort.aspx