Como executar tarefas paralelas no Windows Phone?
Estou construindo um aplicativo WP8 e preciso executar cerca de 30 solicitações da web. Essas solicitações não dependem umas das outras para que possam ser paralelizadas.
Meu código se parece com isso (simplificado / pseudocódigo):
foreach (Uri uri in uris)
{
var rawData = await Task.Run(() => httpClient.GetStringAsync(uri).ConfigureAwait(false));
var processedData = dataProcessor.Process(rawData);
processedDataCollection.Add(processedData);
}
Quando olho para o Fiddler, as solicitações são todas realizadas sequencialmente; leva alguns segundos para executar e processar todos eles. No entanto, não quero que o código aguarde até que 1 solicitação seja concluída antes de passar para a próxima. Quero executar várias solicitações ao mesmo tempo.
Normalmente eu usariaParallel.Invoke()
ouParallel.ForEach()
ou algo assim para fazer isso, mas aparentemente a biblioteca paralela não está disponível no Windows Phone 8.
Então, qual é a melhor maneira de conseguir isso?Task.Factory.StartNew()
? new Thread()
?