private ManualResetEvent _waitHandle = new ManualResetEvent(false);
private bool _timedOut;
...
this._timedOut = false;
this._waitHandle.Reset();
HttpWebRequest request = HttpWebRequest.CreateHttp("http://cloudstore.blogspot.com");
request.BeginGetResponse(this.GetResponse_Complete, request);
bool signalled = this._waitHandle.WaitOne(5);
if (false == signalled)
{
// Handle the timed out scenario.
this._timedOut = true;
}
private void GetResponse_Complete(IAsyncResult result)
{
// Process the response if we didn't time out.
if (false == this._timedOut)
{
HttpWebRequest request = (HttpWebRequest)result.AsyncState;
WebResponse response = request.EndGetResponse(result);
// Handle response.
}
}
private bool _timedOut;
...
this._timedOut = false;
this._waitHandle.Reset();
HttpWebRequest request = HttpWebRequest.CreateHttp("http://cloudstore.blogspot.com");
request.BeginGetResponse(this.GetResponse_Complete, request);
bool signalled = this._waitHandle.WaitOne(5);
if (false == signalled)
{
// Handle the timed out scenario.
this._timedOut = true;
}
private void GetResponse_Complete(IAsyncResult result)
{
// Process the response if we didn't time out.
if (false == this._timedOut)
{
HttpWebRequest request = (HttpWebRequest)result.AsyncState;
WebResponse response = request.EndGetResponse(result);
// Handle response.
}
}
本文详细阐述了在HTTP请求中如何处理超时情况,并介绍了等待响应的方法及超时后的应对策略。
1353

被折叠的 条评论
为什么被折叠?



