快速更新的DataGridView

本文关键字:DataGridView 更新 | 更新日期: 2023-09-27 18:10:04

我使用DataGridView来监视IO事件。每次发生新的IO事件时,DataGridView都会用包含时间戳和其他数据的新项填充。这些更新每10毫秒发生一次,我想把新项目放在网格的顶部。

我只需要在网格中保留~100行;为了不消耗内存,旧的应该被丢弃。我所有的尝试都被证明太慢了,你对如何解决这个问题有什么想法吗?

快速更新的DataGridView

显示计时数据是一项相当具有挑战性的任务。提高性能的最大步骤之一是将刷新率降低到人眼可识别的数字-每秒20次刷新,而无需对每个IO事件做出反应。

  1. 创建或使用环缓冲区,只存储100条记录,减少GC/内存。
  2. 使用Dispatcher timer并安排每50ms刷新一次网格。在计时器滴答时,将缓冲区数据抓取到预分配的集合中,并完全刷新网格。

您可以通过优化步骤2来进一步改进实现,例如减少单元格的度量。