多线程GridView在刷新时挂起

时间:2011-12-10 19:07:59

标签: c# winforms multithreading gridview datatable

我有一个多线程的应用程序,它使用一个线程来不断更新数据表,一个gridview绑定到windows窗体中的这个表。后台线程更新数据表,有时调用gridview beginInvoke()方法,因此gridview可以实时反映一些更新。 一切都很好,没有错误。然而,当我尝试对gridview进行任何类型的UI更改(单击单元格,滚动,排序,甚至调整大小或最小化最大化主窗体)时,它会挂起,我甚至看不出错误是什么。 如果有人熟悉gridview在刷新UI时的作用以及如何解决这个问题,我真的很感激与我分享。 我克服这个问题的第一个猜测是复制另一个数据表并不断更新它并将gridview绑定到这个,我只说这个因为当我从datatable解绑gridview时,一切都很好。 谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

后台线程不应该更新UI。他们这样做的事实可能是由于糟糕的设计。我会这样:

后台线程将包含任何新数据的事件抛出到UI。 UI完成了显示新数据所需的一切