У меня есть программа, которая извлекает данные с веб-сайта, то есть 1-го получает категории и подкатегории и сохраняет их в таблице категорий. Затем отображает соответствующий 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