gpt4 book ai didi

datagridview - 从 BackgroundWorker 到 DataGridView 的 "Streaming"结果

转载 作者:行者123 更新时间:2023-12-04 07:11:39 24 4
gpt4 key购买 nike

有没有办法将一组结果(例如 DataTable)从 BackgroundWorker“流式传输”到 DataGridView。我要做的是查询数据,并将结果填充到 DataGridView 他们来了 (如 SQL Server Management Studio 中的查询网格结果)。我的第一个想法是使用 BackgroundWorker(以避免 UI 卡住效果),但是当 BackgroundWorker 正在加载结果时,仍然会有一个可感知的“滞后”。

解决此问题的最佳方法是什么?

最佳答案

你可以:

将 DataGridView 绑定(bind)到最初为空的 DataTable。

然后,在您的工作线程中,使用线程安全集合(例如同步队列)并调用 Control.BeginInvoke 将记录信息传递给 UI 线程。

在 UI 线程中,您将从队列中拉出项目并将相应的行添加到 DataTable。通过数据绑定(bind)的魔力,这些将被添加到 GridView 中。

但是,通过使用多线程,您会立即使您的程序更容易被破坏!我还没有尝试过这个特定的方案,并且不知道在将项目添加到 GridView 时是否会有效地使其无法使用。我已经使用多线程填充了一个 TreeView ,这确实是一个很酷的效果。但是,我最终禁用了该功能,因为它引入了错误,因为它不是一个完全正确的实现来处理所有可能的用户交互。

关于datagridview - 从 BackgroundWorker 到 DataGridView 的 "Streaming"结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/252955/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com