如何解决更新DataGridView列的HeaderText使GUI无响应
我有一个用VB.NET编写的Windows窗体应用程序。 在GUI上的许多其他组件中,还有一个DataGridView。 DataGridView上有9列。 在特定事件下,我更新了DataGridView的每一列的HeaderText。
事件处理程序看起来像这样
Public Sub OnTestStarted(ByRef objNotification As INotifyObject)
If Me.InvokeRequired Then
Me.BeginInvoke(New onTestStartedDelegate(AddressOf OnTestStarted),New Object() {objNotification})
Return
End If
'Some code goes in here
DataGridView1.Columns.Item(iCellIndexToChange).HeaderText = "Dut" + dutNum.ToString
'Some code goes in here
End Sub
几乎每隔25ms,就会从4个不同的线程中调用子例程OnTestStarted。 GUI在与调用线程不同的线程上运行。
使用此代码,GUI完全不响应。我看不到GUI的任何组件正在更新。
现在,如果我删除该声明
DataGridView1.Columns.Item(iCellIndexToChange).HeaderText = "Dut" + dutNum.ToString
该GUI响应迅速,并且该GUI上的其他组件明显得到刷新。
可能是什么问题和解决方案?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。