2011-05-12 5 views
0

Silverlight에서 BeginGetResponse를 사용할 때 매우 느린 성능을 느낄 수 있습니다.Silverlight ClientHttp 요청 성능이 느림

콜백을 실행하는 데 많은 시간이 필요하며 (10-20 초) 큰 리소스를 요청하는 것이지만 헤더가 파싱되면 콜백이 발생합니다. 즉시).

코드를 가져 와서 .NET 4에서 실행하면 콜백이 즉시 실행됩니다. 여기

내가 두 경우 모두 사용하고 코드입니다 (.NET 4에서이 WebRequest.Create를 사용하여 줄) : 예에서

var url = @"insert http url to large resource here"; 

var req = WebRequestCreator.ClientHttp.Create(new Uri(url)); 

req.BeginGetResponse(r => 
{ 
    var res = req.EndGetResponse(r); 

    Debug.WriteLine("Got response"); 

}, null); 

, 10메가바이트 크기에 자원, '응답을 얻었다'수 실버 라이트로 최대 10 초 동안 발사하십시오.

+0

두 번 이상 코드를 실행하면 속도가 빨라 집니까? –

+0

아니, 두렵지 않다 – meandmycode

답변

0

BeginGetResponse에 10MB 파일을 다운로드하고있는 것이므로 파일 크기가 클수록 속도가 느립니다. 더 작은 파일 '응답 받기'를 빨리 마십니까?

+0

작은 리소스는 더 빠르게 실행되지만 콜백이 실행될 때까지 다운로드되지 않습니다. 콜백이 시작되면 응답 스트림이 채워지기 시작합니다. – meandmycode

관련 문제