我正在开发一个WP8应用程序,需要执行约30个Web请求。这些请求彼此独立,因此可以并行处理。
我的代码如下(简化/伪代码):
当我查看Fiddler时,请求都是按顺序执行的;执行和处理所有请求需要几秒钟时间。然而,我不希望代码在移动到下一个请求之前等待1个请求完成,我想同时执行多个请求。
通常我会使用Parallel.Invoke()或Parallel.ForEach()之类的方法来做到这一点,但显然Parallel库在Windows Phone 8中不可用。
那么实现这一点的最佳方法是什么?Task.Factory.StartNew()?new Thread()?
我的代码如下(简化/伪代码):
foreach (Uri uri in uris)
{
var rawData = await Task.Run(() => httpClient.GetStringAsync(uri).ConfigureAwait(false));
var processedData = dataProcessor.Process(rawData);
processedDataCollection.Add(processedData);
}
当我查看Fiddler时,请求都是按顺序执行的;执行和处理所有请求需要几秒钟时间。然而,我不希望代码在移动到下一个请求之前等待1个请求完成,我想同时执行多个请求。
通常我会使用Parallel.Invoke()或Parallel.ForEach()之类的方法来做到这一点,但显然Parallel库在Windows Phone 8中不可用。
那么实现这一点的最佳方法是什么?Task.Factory.StartNew()?new Thread()?