我有一個程序,它從網站檢索數據,即第一個它獲取類別和子類別並將其存儲在類別表中。 然後點擊相應的類別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記錄被插入,但有重複的項目,之後代碼崩潰此錯誤傳來:「一個或多個錯誤發生」
所以,我如何在我的代碼中實現多線程?
您需要發表更多的代碼。您發佈的代碼並未顯示每個循環級別之間的關係,也沒有顯示多線程將提升性能的昂貴操作的位置。 – Enigmativity