我正在构建代码来测试循环通过数据集中的表使用并行每个循环,但我得到一个错误。该错误发生在ForEach调用上,抛出了重载解析失败的语法错误。请让我知道我在以下代码中做错了什么:
Dim ds As New DataSet
Dim dt As New DataTable
Dim dr As DataRow
ds.Tables.Add()
ds.Tables(0).Columns.Add("Col1", GetType(String))
ds.Tables(0).Columns.Add("Col2", GetType(String))
ds.Tables(0).Columns.Add("Col3", GetType(String))
ds.Tables(0).Columns.Add("Col4", GetType(String))
dr = ds.Tables(0).NewRow()
dr("Col1") = "Loaded"
dr("Col2") = "Col 2 Data"
dr("Col3") = "Col 3 Data"
dr("Col4") = "Col 4 Data"
ds.Tables(0).Rows.Add(dr)
ds.Tables.Add()
ds.Tables(1).Columns.Add("Col1", GetType(String))
ds.Tables(1).Columns.Add("Col2", GetType(String))
ds.Tables(1).Columns.Add("Col3", GetType(String))
ds.Tables(1).Columns.Add("Col4", GetType(String))
dr = ds.Tables(1).NewRow()
dr("Col1") = "Loaded"
dr("Col2") = "Col 2 Data"
dr("Col3") = "Col 3 Data"
dr("Col4") = "Col 4 Data"
ds.Tables(1).Rows.Add(dr)
Parallel.ForEach(
ds.Tables.Cast(Of DataTable),
Sub(table)
ProcessTable(table)
End Sub
)
答案,正如djv指出的,是没有问题的代码。
编译器报错ProcessTable方法不存在。编译器只是把错误放在ForEach调用的那一行,而不是ProcessTable方法调用的那一行。