Как обновить ячейку datagridview из другого потока в VB.Net - PullRequest
0 голосов
/ 18 декабря 2018

Я пытаюсь обновить DataGridViewCell в форме пользовательского интерфейса, используя поток.Везде, где я искал по Интернету, более или менее я обнаружил, что они просят обновить источник данных, который я не могу реализовать в этом проекте из-за некоторых ограничений.

Дан пример коданиже, чтобы понять мою проблему.

Я написал Sub в модуле, чтобы получить значения, которые будут обновлены в gridview.

Public Sub GetValues()
    For I as Integer = 0 to N 'N = Row Count of the gridview
        For J as Integer = 0 to M 'M = column count of the gridview
            frmMain.DGV.Rows(I).Cells(J).Value = I * J
        Next
    Next
End Sub

Теперь я пытаюсь создать поток длязапустите sub GetValues ​​и хотите, чтобы этот поток обновлял ячейки в моем DGV gridview по очереди.

Dim T As Threading.Thread = New Threading.Thread(AddressOf Module1.GetValues)
T.Start()

Но это не работает / обновляется.Пожалуйста, помогите

Ответы [ 2 ]

0 голосов
/ 18 декабря 2018

Рассмотрите возможность использования BackgroundWorker.Это процесс потока, и вы можете сделать паузу для передачи данных из потока в основной процесс.

0 голосов
/ 18 декабря 2018

С Me.Invoke () или Me.BeginInvoke ().Первое обновление немедленно, второе - асинхронное.

Public Sub GetValues()
For I as Integer = 0 to N 'N = Row Count of the gridview
    For J as Integer = 0 to M 'M = column count of the gridview
        Me.BeginInvoke(Sub() frmMain.DGV(J,I).Value = I * J)
    Next
Next
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...