Datarow заканчивает с неправильными или потерянными данными - PullRequest
0 голосов
/ 14 марта 2020

Я отменяю твиты твиттера, запускаю несколько фоновых рабочих, и они делают следующее:

For x as Integer = 0 to 5
    Dim BGW As New BackgroundWorker
    AddHandler BGW.DoWork, AddressOf TweetGrab
    BGW.RunWorkerAsync(tweeturl)
Next

Public TemporaryRows As New List(Of DataRow)
Private Sub TweetGrab(tweeturl as String)
    'some html stuff here

    Dim ImageUrl as String = twitterImage.Attributes("src").Value
    Dim ThumbnailUrl As String = ImageUrl & ":small"

    Dim DataRowTemporary As DataRow = DataTable1.NewRow()
    DataRowTemporary("ImageUrl") = ImageUrl 
    DataRowTemporary("ThumbnailUrl") = ThumbnailUrl 
    DataRowTemporary("Checked") = False

    'I detect the error even here

    TemporaryRows.Add(DataRowTemporary)
End Sub

Позже я делаю вещи с помощью TemporaryRows. Я oop над строками и проверяю, удовлетворяют ли они некоторым условиям.

Проблема в том, что DataRowTemporary("Checked") заканчивается как DBNull и DataRowTemporary("ThumbnailUrl") полностью отличается от ImageUrl, хотя я указал Dim ThumbnailUrl As String = ImageUrl & ":small"

Это происходит примерно в 2/10 случаях. Я предполагаю, что это как-то связано с фоновыми потоками, но у меня нет идей, как это решить. Я могу изменить поля после возникновения ошибки, но я бы хотел предотвратить возникновение ошибки.

...