1
我想一個異步請求中獲得的經過時間的經過時間,但我得到了一個時間,這是Wireshark的時候完全不同。獲取異步請求
這真是奇怪,因爲我在做同樣的事情同步請求池,我得到Wireshark的時間。
這是我的代碼:
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的價值。
我都做什麼了嗎?
感謝您的幫助。
對於每個請求,我得到一個異步響應,但定時器不重新啓動:'for(int k = 0; k
dbaq
您是否在監視與您的getResponseAsync()調用相對應的回調?因爲每個getReponseAsync()都會調用你的ResponseCallback。如果你沒有得到相應的回調,你會得到一個錯誤的時間值。 –
對不起,但我沒有看到這個片段的問題。我試圖把開始時間放在我的RequestState對象中:'rs.start = DateTime.Now;'並且在我的ResponseCallback中: 'RequestState rs =(RequestState)ar.AsyncState; HttpWebRequest req = rs.Request; DateTime start = rs.start; HttpWebResponse resp =(HttpWebResponse)req.EndGetResponse(ar); this.timeAsync = Helpers.getDiffMs(start);' – dbaq