【发布时间】:2013-11-29 14:53:11
【问题描述】:
我正在构建一个 WP8 应用程序,我需要执行大约 30 个网络请求。这些请求不相互依赖,因此可以并行化。
我的代码如下所示(简化/伪代码):
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()?
【问题讨论】:
标签: c# multithreading asynchronous windows-phone-8 parallel-processing