Я вполне могу что-то упустить здесь, но я замечаю очень низкую производительность при использовании BeginGetResponse в silverlight.
Требуется большой промежуток времени, чтобы сработал обратный вызов (10-20 секунд), запросы, которые я делаю, относятся к большим ресурсам, но я ожидал, что обратный вызов сработает после того, как заголовки будут проанализированы (по существу, немедленно). ).
Если я беру код и запускаю его в .NET 4, обратный вызов запускается мгновенно.
Вот код, который я использую в обоих случаях (кроме использования WebRequest.Create в .NET 4):
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 секунд для срабатывания в серебряном свете.