从工作线程

时间:2017-11-01 17:41:52

标签: c# multithreading winforms datagridview

也许我的问题听起来很愚蠢,但我真的很困惑。也许我看不到木头的树木,这是一个该死的简单解决方案,但我只是看不到它。

我的C#应用​​程序(Windows窗体)中有一个绑定的DataGridView,数据位于数据库中。在常规时间间隔内,我的应用程序检查数据库表是否有任何更改(数据由外部事件更改),如果有任何更改,则应更新DataGridView。

我希望它可以这样工作 - 使用工作线程检查数据库 - 如果有更改,请更改基础DataSet对象(即从数据库重新加载,清理并再次填充) - 这也应该在工作线程中完成 - 使DataGridView无效 - 在下一个绘制事件处理程序调用时,DataGridView将使用更新的内容进行更新

我发现了什么 - 我无法从工作线程重新加载DataSet - 在UI线程中进行更新时,我遇到了严重的性能问题

DataSet(更好:TableAdapters)是否真的不能在另一个线程中操作而不是UI线程?为什么? 我想,DataSet不是直接的UI元素,因此COULD允许从另一个线程进行操作。 怎么可能(或者应该)我解决我的问题? 是否有“最佳实践”解决方案?

我的意思是,微软应该知道这种应用程序,我想有很多应用程序。 我错过了什么? 什么是我不明白的?

最佳, 托马斯

0 个答案:

没有答案