我正在构建一个MVC应用程序,该应用程序通过包含一些Url的XML文档进行循环,并针对这些URL执行操作。该文档可以包含多达400个以上的Url,因此一次只能获取一个对用户来说是一个延迟,所以我希望能够并行执行。多次调用相同的方法异步
这里是法的基本结构,它是我喜欢的工作,以重构
List<CustomObject> finalList = new List<CustomObject>();
// at this point, list is populated with urls
foreach (string url in list)
{
XmlReader reader = XmlReader.Create(url);
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(reader);
//below method processes the XML and adds it to the List of custom objects
finalList.AddRange(ProcessXML(xmlDoc));
}
基本上,我想要做的就是旋转了一个线程数来减少所需的时间量循环通过文件并执行加载(这显然需要最多的时间)。
有没有简单的方法来做到这一点,不会吃掉资源?如果是这样,它应该如何构建。让我知道是否需要更多信息。
你的问题是广泛的很难得到什么花费大部分时间的foreach或URL我得不到foreach异步和异步在foreach给你一个很大的失败 –
有趣的想法,旋转线程不会困难,但我很好奇你的想法,多个线程循环通过相同的文件。那会在你的结果列表中产生重复的结果呢?如果您同时解析不同的文档,通常会使用多个线程,而不是多个线程解析一个文档。 – mituw16
http://stackoverflow.com/q/5114554/2563028 – EfrainReyes