首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何并行循环xmlnode

如何并行循环xmlnode
EN

Stack Overflow用户
提问于 2012-07-07 22:59:43
回答 3查看 2.2K关注 0票数 0

我有以下代码:

代码语言:javascript
复制
foreach (XmlNode xn in xnList)
{
 String NAME = xn["name"].InnerText;
}

我想并行启动每个循环。我该怎么做呢?我想我可以使用下面的方法,但我想不出如何让它工作:

代码语言:javascript
复制
        ParallelOptions parOptions = new ParallelOptions();
        parOptions.MaxDegreeOfParallelism = 4; //only up to 5 threads allowed.
        Parallel.ForEach(xnList.AsEnumerable(), parOptions, xn=>
        { 
         String NAME = xn["name"].InnerText;
        }
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-07-07 23:30:16

我想出了这个解决方案:

代码语言:javascript
复制
        var parallelLoop1 = xnList.Count;
        Parallel.For(0, parallelLoop1, index =>
        {
         String NAME = xnList[index]["name"].InnerText;
        }
票数 2
EN

Stack Overflow用户

发布于 2012-07-07 23:33:25

您尝试的内容可以如下所示:

代码语言:javascript
复制
Parallel.ForEach(xnList.AsEnumerable(),
                 item=>{String NAME = item["name"].InnerText;});

但是如果你使用winform并且你想要做一些处理并且防止等待游标,这是另一个问题。

票数 2
EN

Stack Overflow用户

发布于 2014-08-06 14:43:45

我在下面的链接中找到了这个链接,它允许您在非泛型集合(如XmlNodeList )上并行执行foreach。

代码语言:javascript
复制
// Process the results in parallel
Parallel.ForEach(nodes.Cast<XmlNode>(), options, (thenode) =>
{
    // do stuff
});

Details of parallel foreach over non-generic collections

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11376043

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档