【发布时间】:2010-06-09 19:00:23
【问题描述】:
我的 Windows 窗体应用程序中有一个 DataGridView 控件。 我正在使用后台线程向网格中添加行。当进程开始时,我将表单的光标更改为 Waitcursor 并在结束时返回默认值。这适用于表单,但不适用于网格。当表单的光标改回默认值时,网格的光标不会改变,尽管表单其余部分的光标会改变。
这与我从后台线程更新网格这一事实有关吗? (光标直接从 UI 线程改变)。
编辑:后台进程引发一个事件,处理程序检查网格的 InvokeRequired 属性并决定是否需要从主线程再次“调用”该方法。因此,实际上实际的 UI 更新发生在适当的线程中。我不确定这是否意味着我“使用后台线程”。 :|
【问题讨论】:
-
您不应该从其他线程更改 UI,在您的情况下是网格。这应该只在主线程中完成。
标签: vb.net datagridview multithreading