Многозадачность и многопоточность в серебряном свете - PullRequest
5 голосов
/ 18 марта 2010

У меня есть приложение silverlight, в котором у меня есть несколько запросов, которые отправляются на сервер. Я хочу, чтобы все эти запросы были синхронизированы, то есть с помощью очереди или с помощью многозадачности. Что является лучшим способом сделать это. Приведите несколько примеров в Silverlight, где io мог бы это сделать.

Ответы [ 4 ]

1 голос
/ 16 января 2011

Тарун, я нашел эту статью очень полезной.

http://blog.benday.com/archive/2010/05/15/23277.aspx

0 голосов
/ 29 марта 2011

Дело в том, что вы не можете контролировать порядок запроса, и по умолчанию вы можете сделать только два запроса к одному домену, поэтому это означает, что вам нужно что-то построить на клиенте, чтобы отправлять запросы в порядок, который вы хотите выполнить, и, конечно же, Silverlight поддерживает только BasicHttpBinding, что означает, что вы не получили заказанное свойство сообщения.

0 голосов
/ 22 февраля 2011

Реактивные расширения также могут быть допустимым вариантом. Это хорошая статья , в которой показано ее использование для асинхронных вызовов службы WCF.

0 голосов
/ 16 января 2011

Посмотрите на ASYNC CTP Framework: 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, для синхронизации запросов.

...