我有一个应用程序,它使用HttpWebRequest以异步方式向Web资源发出多个并发请求。即使我已经将我的HttpWebRequest实例的超时属性设置为5秒,有时当异步调用BeginGetRequestStream时,获取流可能需要更长的时间并且导致引用混乱。有没有办法限制它请求流的时间量?此外,如果我得到流并决定我完全放弃请求,从不实际调用BeginGetResponse,那么这个行动方案是否有任何后果?
答案 0 :(得分:0)
你可以用这个
ManualResetEvent allDone = new ManualResetEvent(false);
bool isRequestFnishedInCorrectTime=allDone.WaitOne(5000);
if(isRequestFnishedInCorrectTime==false)
request.Abort();
else
//request success
获得回复之后,重要的一点是你必须设置它:
allDone.Set();
如果请求无法在5秒内完成请求将中止。