我正在尝试使用线程更新UI表单中的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
现在,我正在尝试创建一个线程来启动子GetValues,并希望该线程一个接一个地更新我的gridview DGV中的单元格。
Dim T As Threading.Thread = New Threading.Thread(AddressOf Module1.GetValues)
T.Start()
但是它没有工作/正在更新。请帮助
答案 0 :(得分:0)
使用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
答案 1 :(得分:0)
考虑使用BackgroundWorker。这是一个线程进程,您可以使其暂停以将数据从线程传递到主进程。