停止异步HttpWebRequest

时间:2009-02-19 00:15:11

标签: .net asynchronous httpwebrequest

我有一个应用程序,它使用HttpWebRequest以异步方式向Web资源发出多个并发请求。即使我已经将我的HttpWebRequest实例的超时属性设置为5秒,有时当异步调用BeginGetRequestStream时,获取流可能需要更长的时间并且导致引用混乱。有没有办法限制它请求流的时间量?此外,如果我得到流并决定我完全放弃请求,从不实际调用BeginGetResponse,那么这个行动方案是否有任何后果?

1 个答案:

答案 0 :(得分:0)

你可以用这个

ManualResetEvent allDone = new ManualResetEvent(false);
bool isRequestFnishedInCorrectTime=allDone.WaitOne(5000);
if(isRequestFnishedInCorrectTime==false)
    request.Abort();
else
    //request success

获得回复之后,重要的一点是你必须设置它:

allDone.Set();

如果请求无法在5秒内完成请求将中止。