1

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

4

1 回答 1

0

你可以用这个

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

得到回复后的重点是你必须设置这个:

allDone.Set();

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

于 2015-11-19T15:47:13.277 回答