【发布时间】:2014-11-20 02:41:42
【问题描述】:
我目前正在使用DataGridView 以表格格式显示我的数据。它有 5 列。
Problem: 我收到的数据速度非常快,比如 5 毫秒。我正在使用BlockingCollection 从一个线程将数据存储在其中,并通过从另一个线程中获取数据来更新表。发生的情况是队列的大小不断增加,因为数据进入的速度非常快。
当我停止发送数据时,DataGridView 会继续添加行,理想情况下应该在我停止发送数据时立即停止。
我尝试实现一个线程安全的循环队列,但没有成功,我错过了很多来自它的消息。
我可以使用任何其他控件来代替非常快的DataGridView 吗?
或者如果有人可以告诉我如何更好地实现它?
【问题讨论】:
-
您是在添加下一个块之前追加行还是清除整个网格?
-
您是否将新项目一一添加到 datagridview 中?最好做一些兑现,并按包添加数据到网格(例如100行)......
-
您提到您“通过获取数据来更新表”,因此如果“数据进入的速度非常快”,请放慢获取的节奏数据。
-
对 DataGridView 也使用 DoubleBuffering
-
谢谢。 c# 中是否有任何内置的线程安全循环队列,例如用于线性线程安全数据结构的 BlockingCollection?
标签: c# multithreading winforms datagridview