2010-06-29 2 views
1

Asyhcnronous WebRequest의 시간을 측정하는 방법이 있는지 궁금합니다. HttpWRequest.BeginGetResponse (새 AsyncCallback (UpdateItem), si)를 사용하고 있습니다. si = StoreInfo는 Request, URL 및 내가 시작한 스톱워치를 저장하는 클래스 인스턴스입니다. UpdateItem 루틴에서 나는 초시계를 받고 그것을 멈춘다.비동기식 HttpWebRequest를 시간 측정하는 방법?

문제는 스톱워치가 실행 중이지만 요청이 요청을 기다리고 있지만 실제로 요청을하지 않은 것입니다.

요청이 실제로 시작될 때 스톱워치를 시작하는 방법이 필요합니다 (스레드가이 요청에서 시작 함) 또는 요청/응답에서 경과 된 시간을 어떻게 든 결정할 수 있습니까? 방법이 있다고 생각하지 마십시오.

누구든지 아이디어가 있습니까?

+0

무엇? 콜백에서 EndGetResponse()를 호출하면 응답을 얻습니다. –

답변

1

벽시계 시간을 측정하려는 경우. BeginGetResponse()가 호출 된 시간이며 완료되면 다음 작업이 올바르게 수행됩니다.

그러나 위에서 언급 한 것처럼 실제로 네트워크 시간을 알려주지는 않습니다. 네트워크에 기록 된 HTTP 요청 헤더의 첫 번째 바이트와 응답의 첫 번째 바이트를 수신하는 시간 사이의 시간을 측정합니다. 이는 API를 사용하여 측정하기가 쉽지 않습니다. Wireshark/Netmon과 같은 네트워크 캡처 도구를 사용하여 수동으로 수행해야합니다.

관련 문제