C#asp.net Web表单中的页面生命周期和异步请求

时间:2011-10-13 21:55:17

标签: c# .net asp.net httpwebrequest asynchronous

如果我发送一个HttpWebRequest并将其与BeginGetResponse一起发送回调,我的回调永远不会被击中。页面在给出响应之前完成。

如何获取回复?

我试过设置一个计时器:

  ThreadPool.RegisterWaitForSingleObject(result.AsyncWaitHandle, new WaitOrTimerCallback(TimeoutCallback), null, DefaultTimeout, true);

但是如果DefaultTimeout(以毫秒为单位)设置为1毫秒,它将再次到达回调。但如果设置为30秒,则回调永远不会被触发。

如何再次访问请求/结果?

1 个答案:

答案 0 :(得分:2)

如果要在允许代码继续执行之前等待Web请求完成,则需要使用同步GetResponse方法而不是异步BeginGetResponse方法。这将阻止当前线程,直到请求完成。