【发布时间】:2019-09-26 15:40:18
【问题描述】:
阅读了MSDN How To: document on using parallel.foreach(),我认为我可能能够并行化我的代码的一些长时间运行的部分 - 但是 Visual Studio 正在产生一条我很难理解的错误消息,我不再确定XmlNodeList 是不是 System.Collections.IEnumerable!
我的代码是:
Parallel.ForEach(Doc.GetElementsByTagName("Details2"), Sub(Node As XmlNode)
'do something, for instance
For Each tAttribute As XmlAttribute In Nodede.Attributes
debug.writeline(tAttribute.value)
next
End Sub)
然后我收到错误消息:
错误 BC30518 重载解析失败,因为无法访问 可以使用以下参数调用“ForEach”: '公共共享重载函数 ForEach(Of TSource)(source As IEnumerable(Of TSource), body As Action(Of TSource)) As ParallelLoopResult': 类型参数的数据类型不能 从这些论点推断。明确指定数据类型 可能会纠正这个错误。
我哪里出错了?
【问题讨论】:
-
为什么需要一个函数?该示例使用了一个子,我的代码没有返回任何内容
-
我的错,没关系,我发现的真正问题是告诉它来自
GetElementsByTagName的对象类型。我未能删除我的评论,只是发布了一个答案,但未能删除该评论;有时我的手指会走在我前面。