我有以下代码:
foreach (XmlNode xn in xnList)
{
String NAME = xn["name"].InnerText;
}我想并行启动每个循环。我该怎么做呢?我想我可以使用下面的方法,但我想不出如何让它工作:
ParallelOptions parOptions = new ParallelOptions();
parOptions.MaxDegreeOfParallelism = 4; //only up to 5 threads allowed.
Parallel.ForEach(xnList.AsEnumerable(), parOptions, xn=>
{
String NAME = xn["name"].InnerText;
}发布于 2012-07-07 23:30:16
我想出了这个解决方案:
var parallelLoop1 = xnList.Count;
Parallel.For(0, parallelLoop1, index =>
{
String NAME = xnList[index]["name"].InnerText;
}发布于 2012-07-07 23:33:25
您尝试的内容可以如下所示:
Parallel.ForEach(xnList.AsEnumerable(),
item=>{String NAME = item["name"].InnerText;});但是如果你使用winform并且你想要做一些处理并且防止等待游标,这是另一个问题。
发布于 2014-08-06 14:43:45
我在下面的链接中找到了这个链接,它允许您在非泛型集合(如XmlNodeList )上并行执行foreach。
// Process the results in parallel
Parallel.ForEach(nodes.Cast<XmlNode>(), options, (thenode) =>
{
// do stuff
});Details of parallel foreach over non-generic collections
https://stackoverflow.com/questions/11376043
复制相似问题