我试图在异步请求中获取已用时间,但我得到的时间与wireshark时间完全不同。
这真的很奇怪,因为我正在使用同步请求池做同样的事情,我得到了Wirehark时间。
那是我的代码:
public void getResponseAsync()
{
RequestState rs = new RequestState();
rs.Request = this.webRequest; //On ajoute la requete dans l'objet état pour pouvoir le récupérer dans la callback
this.timerAsync.Restart();
IAsyncResult ar = rs.Request.BeginGetResponse(new AsyncCallback(this.ResponseCallback), rs); // Appel asynchrone
}
public void ResponseCallback(IAsyncResult ar)
{
RequestState rs = (RequestState)ar.AsyncState; //Récupération de l'objet etat
HttpWebRequest req = rs.Request; //Récupération de la requete web (object HttpWebRequest)
try //Récupération de la réponse Web
{
HttpWebResponse resp = (HttpWebResponse)req.EndGetResponse(ar);
this.timerAsync.Stop();
this.timeAsync = this.timerAsync.ElapsedMilliseconds;
...
...
}
}
this.timeAsync的值远离Wireshark值。
我做错了吗?
感谢您的帮助。
答案 0 :(得分:0)
你确定只有一次getResponseAsync()调用吗? 在getResponseAsync上添加断点以确定。
多次调用getResponseAsync会重置您的计时器。