【发布时间】:2013-08-06 18:58:07
【问题描述】:
我有一个程序,它从网站检索数据,即首先它获取类别和子类别并将其存储在类别表中。 然后点击相应的类别 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(任务并行库)。
即
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 条记录,但有重复的项目,然后代码崩溃了这个错误:'一个或多个错误发生'
那么,如何在我的代码中实现多线程?
【问题讨论】:
-
您需要发布更多代码。您发布的代码没有显示每个循环级别之间的关系,也没有任何迹象表明多线程会提高性能的代价高昂的操作在哪里。
标签: vb.net multithreading task-parallel-library