C# 每秒更新DataGridView

C# 每秒更新DataGridView,c#,datagridview,C#,Datagridview,在我的datagridview应用程序中有一些巨大的延迟。我需要每秒用状态消息更新它,datagridview中大约有3000行 我当前用于更新的代码是: private void UpdateProxies() { Invoke(new MethodInvoker( delegate { this.dgvProxies

在我的datagridview应用程序中有一些巨大的延迟。我需要每秒用状态消息更新它,datagridview中大约有3000行

我当前用于更新的代码是:

    private void UpdateProxies()
    {
        Invoke(new MethodInvoker(
                       delegate
                       {
                           this.dgvProxies.DoubleBuffered(true);
                           this.dgvProxies.SuspendLayout();
                           this.dgvProxies.DataSource = null;
                           this.dgvProxies.DataSource = this.Proxies;
                           this.dgvProxies.ResumeLayout();
                           this.dgvProxies.Refresh();
                       }
                       ));
    }
我已尝试删除autoresize属性并启用双缓冲。。还是很落后


有什么办法可以加快速度吗?

我想这样做是不可能的。3k排是一个巨大的工作量。我建议你尝试改变方法

  • 仅显示用户当前正在查看的行以及一些用于滚动的缓冲区。在用户滚动时进行动态加载
  • 进行增量更新。检测数据中的更改,并添加新行或插入新行,或根据数据更改进行删除或执行任何需要执行的操作。避免将所有数据绑定到datagridview

您可以更新数据源中的对象吗,还是每次都需要销毁和重新创建它们?如果可以更新它们,则可以使用在其上更改的inotifyproperty,网格将更新需要更新的单元格,而无需重新绑定到所有内容。与集合本身相同,您可以使用ObservableCollection,并且datagrid应在需要时处理更改。尝试仅更新用户可以看到的行。我如何实现仅显示用户看到的数据的解决方案?然后在滚动时更新?您只能绑定部分数据。临时收集。这里有一个狂欢节。你们可以把它连接起来,在数据对上进行数据选择以滚动。