如果我发送一个HttpWebRequest并将其与BeginGetResponse一起发送回调,我的回调永远不会被击中。页面在给出响应之前完成。
如何获取回复?
我试过设置一个计时器:
ThreadPool.RegisterWaitForSingleObject(result.AsyncWaitHandle, new WaitOrTimerCallback(TimeoutCallback), null, DefaultTimeout, true);
但是如果DefaultTimeout(以毫秒为单位)设置为1毫秒,它将再次到达回调。但如果设置为30秒,则回调永远不会被触发。
如何再次访问请求/结果?
答案 0 :(得分:2)
如果要在允许代码继续执行之前等待Web请求完成,则需要使用同步GetResponse方法而不是异步BeginGetResponse方法。这将阻止当前线程,直到请求完成。