获取异步请求的已用时间

时间:2011-11-15 09:21:44

标签: c# asynchronous timer httpwebrequest httpwebresponse

我试图在异步请求中获取已用时间,但我得到的时间与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值。

我做错了吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

你确定只有一次getResponseAsync()调用吗? 在getResponseAsync上添加断点以确定。

多次调用getResponseAsync会重置您的计时器。

相关问题