2010-03-18 8 views
5

Tengo una aplicación Silverlight en la que tengo varias solicitudes que van al servidor. Quiero que todas estas solicitudes se sincronicen, es decir, mediante cola o mediante multitarea. ¿Cuál es la mejor media? de hacerlo así. Plz da un ejemplo en silverlight donde podría hacerlo.Multitarea y multiprocesamiento en Silverlight

Respuesta

0

Tome una mirada en el marco CTP ASYNC: http://msdn.microsoft.com/en-us/vstudio/gg316360

Ofrece maneras fáciles de manejar/sincronizar peticiones asíncronas, como en el siguiente ejemplo:

public async void AsyncWebRequestGetResponse() 
{ 
    var response = await WebRequest.Create("http://www.weather.gov").GetResponseAsync(); 
    var stream = response.GetResponseStream(); 
    Console.WriteLine("First byte: {0}", stream.ReadByte().ToString("X2")); 
} 

o

public async void AsyncForEach() 
{ 
    var uris = new List<Uri> { new Uri("http://www.weather.gov"), new Uri("http://www.weather.gov/climate/"), new Uri("http://www.weather.gov/rss/") }; 

    foreach (var uri in uris) 
    { 
     WriteLinePageTitle(await new WebClient().DownloadStringTaskAsync(uri)); 
    } 
} 

La forma clásica es usar WaitHandles como AutoResetEvent para sincronizar solicitudes.

0

Las extensiones reactivas también pueden ser una opción válida. Este es un buen article que muestra su uso para llamadas asincrónicas a un servicio WCF.

0

El punto es que no puede controlar el orden de la solicitud y, por defecto, solo puede realizar dos solicitudes al mismo dominio, por lo que significa que debe crear algo en el cliente para poder enviar solicitudes en el orden en que desea que se ejecute, y, por supuesto, Silverlight solo es compatible con BasicHttpBinding significa que no tiene la propiedad del mensaje ordenado.