2010-03-18 86 views
5

我有一個Silverlight應用程序,其中我有多個請求該轉到server.I希望所有這些請求將被同步通過隊列的手段或通過multitasking.What的手段即是最好的平均這樣做.Plz在silverlight中提供了一些例子,io可以這樣做。多任務和多線程在Silverlight

回答

0

看看異步CTP框架: http://msdn.microsoft.com/en-us/vstudio/gg316360

它提供了簡便的方法來處理/同步異步請求,就像下面的示例:

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")); 
} 

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)); 
    } 
} 

經典的方法是使用WaitHandles像AutoResetEvent來同步請求。

0

無擴展也可能是一個有效的選擇。這是一個很好的article,它顯示使用它來異步調用WCF服務。

0

的一點是,你無法控制的要求的順序,並通過默認值,你不僅可以使兩個請求同一個域,所以它意味着你需要建立在客戶端上的東西,以發送請求按照你想要執行的順序,當然Silverlight只支持BasicHttpBinding,意味着你沒有得到有序的消息屬性。