これは、私が作ろうとしている URL 同時ダウンロード プログラムの一部です。という名前のデータテーブルに保存された URL リストがあり、 という名前のデータグリッドビューtbl
にバインドされていdgvUrls
ます。無効な URL に遭遇するたびに、それをデータテーブルから削除します。
以下のコードを使用してエラーを再現しました。はButton3_Click
、データテーブルに 100 行を追加し、datagridview のデータソースとして作成します。は、最初q()
の行を削除することで、行を 1 つずつ削除します。問題は、データグリッドビューがデータテーブルで行われた変更を反映していないことです
Dim tbl = New DataTable
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
'Add 100 urls, for simplicity i'm adding only integers
tbl.Columns.Add("Urls")
For i = 1 To 100
tbl.Rows.Add(i)
Next
'bind to datagridview so that the end user can see the urls being download/removed from the list
dgvUrls.DataSource = tbl
'start multithread download , for simplicited (of this question) we have only one
Dim t As Thread = New Thread(AddressOf Download)
t.Start()
t.Join()
dgvUrls.Refresh()
End Sub
Private Sub download()
'for simplicity, the 1st 80 urls were dead!
For i = 1 To 80
'we remove the dead urls
tbl.Rows.RemoveAt(0)
Next