У меня есть этот саб:
Private Sub error_out(ByVal line As Integer, ByVal err_col As Integer, ByVal err_msg As String)
Dim ln = t_erori.Rows.Add
ln.Item(0) = line
ln.Item(err_col) = err_msg
ln.Item(3) = err_col
End Sub
Это вызывается несколькими функциями, работающими в цикле параллельного .for.
Проблема в том, что иногда (совершенно случайно) я получаю сообщение об ошибке:
Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
в строке Dim ln = t_erori.Rows.Add
.
Я подозреваю, что это потому, что он пытается добавить одну и ту же строку дважды.
Как я могу сделать эту работу? Или какой еще метод я мог бы использовать для этого?
Мне нужна эта таблица данных, потому что мое приложение записывает туда некоторые результаты, но любой другой метод для сохранения результатов, который работает с parallel.for, будет в порядке.