我有一个程序,它从网站检索数据,即首先它获取类别和子类别并将其存储在类别表中。然后点击相应的类别 URL 并检索产品。
我有一个遍历类别 URL 的外循环和一个处理分页的内循环,还有一个用于检索产品的内循环。
这是我的代码
For item As Integer = 0 To tempTable.Rows.Count - 1
'main loop
For cycleCount As Integer = -1 To pageNodes.Count - 1
'pagination loop
For Each product As HtmlNode In products
'retrive products here
Next
Next
Next
通常,我的代码工作正常。但我想应用多线程。因此,我在主循环中使用了 TPL(任务并行库)。
IE
Parallel.For(0, tempTable.Rows.Count - 1, Sub(item)
'main loop
For cycleCount As Integer = -1 To pageNodes.Count - 1
'pagination loop
For Each product As HtmlNode In products
'retrive products here
Next
Next
End Sub)
仅插入了 2 到 4 条记录,但有重复的项目,并且在该代码崩溃之后出现此错误:“发生了一个或多个错误”
那么,如何在我的代码中实现多线程?