2
我使用DataGridView来监视IO事件。每次发生新的IO事件时,DataGridView都会填充一个包含其他数据中的时间戳的新项目。这些更新每10毫秒进行一次,我希望将新项目放在网格顶部。快速更新DataGridView
我只需要在网格中保留〜100行;应该丢弃旧的,以免消耗内存。我所有的尝试都被证明太慢,你有什么想法来解决这个问题?
我使用DataGridView来监视IO事件。每次发生新的IO事件时,DataGridView都会填充一个包含其他数据中的时间戳的新项目。这些更新每10毫秒进行一次,我希望将新项目放在网格顶部。快速更新DataGridView
我只需要在网格中保留〜100行;应该丢弃旧的,以免消耗内存。我所有的尝试都被证明太慢,你有什么想法来解决这个问题?
显示滴答数据是相当具有挑战性的任务。提高性能的最大步骤之一是将刷新率降低到人眼可识别的数字 - 每秒刷新20次,而不会对每个IO事件做出反应。
然后,您可以通过优化步骤2来进一步改进实施 - 例如减少单元格的度量。
好吧,所以我创建了一个RingBuffer实现IList,ICollection ,IEnumerable 和IEnumerable。但是,当我将它绑定到DataGridView(通过BindingSource)时,DataGridView将显示RingBuffer的属性而不是其项目。有任何想法吗? –
Simon
我只是将RingBuffer的状态复制到一个新的集合中。 “将缓冲区数据抓取到预分配的集合中,并完全刷新网格”。绑定到在后台不断更改的集合并不是一个好主意。 –