C# 获取异步请求的运行时间
我试图获取异步请求期间经过的时间,但得到的时间与wireshark时间完全不同 这真的很奇怪,因为我在同步请求池中做同样的事情,我得到了wireshark时间 这是我的代码:C# 获取异步请求的运行时间,c#,asynchronous,timer,httpwebrequest,httpwebresponse,C#,Asynchronous,Timer,Httpwebrequest,Httpwebresponse,我试图获取异步请求期间经过的时间,但得到的时间与wireshark时间完全不同 这真的很奇怪,因为我在同步请求池中做同样的事情,我得到了wireshark时间 这是我的代码: public void getResponseAsync() { RequestState rs = new RequestState(); rs.Request = this.webRequest; //On ajoute la requete dans l'objet
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的值相差很远
我做错什么了吗
谢谢您的帮助。您确定只有一个getResponseAsync()调用吗? 在getResponseAsync上添加断点以确定
多次调用getResponseAsync将重置计时器。对于每个请求,我都会得到一个异步响应,但计时器不会重新启动:
For(int k=0;k
我得到的值高于预期值。您是否正在监视与getResponseAsync()调用对应的回调?因为每个getReponseAsync()都将调用您的ResponseCallback。如果你没有得到相应的回调,你会得到一个错误的时间值。很抱歉,我看不出这段代码有什么问题。我试图将开始时间放在我的RequestState对象中:rs.start=DateTime.Now代码>和在我的响应回调中:RequestState rs=(RequestState)ar.AsyncState;HttpWebRequest请求=rs.请求;DateTime start=rs.start;HttpWebResponse resp=(HttpWebResponse)请求EndGetResponse(ar);this.timeAsync=Helpers.getDiffMs(开始)代码>