我在创建处理适当数量的快速刷新数据并将其显示在数据网格中的应用程序时遇到了问题。目前我们正在使用Telerik radgridview winforms控件,并且刷新性能相当不错 - 直到其中一个列被排序,这使得事情急剧下降,应用程序变得几乎无法使用。我不需要显示大量数据,例如,200项以下 - 但它们确实经常更新,每半秒左右。数据是只读的,但我们更喜欢使用数据网格,因为它使用户可以轻松选择显示哪些列以及哪一列用于排序。
分析表明,打开排序会创建一个荒谬的细胞重绘次数 - 数百万次的数量级变化。大多数CPU似乎都被各种GDI绘图方法所束缚,我认为它们与绘制单元格有关。
此时几乎所有东西都摆在桌面上,从托管WPF网格到利用硬件加速,购买另一个网格。如果有人有创建这样的应用程序的经验或建议,那将是非常棒的。
答案 0 :(得分:0)
没有具体经验,但一般问题:您能否限制重新绘制屏幕的频率?这听起来像是在每次更改属性时使用和重绘所有内容。
如果您无法控制排序和重绘的频率,则另一个编码更改可能是使您的数据的一个副本保持最新,然后单独获得Telerik程序看到的副本。然后以固定间隔(如每秒)更新Telerik副本。这一切都不知道这个程序是如何工作的,但这是否可行呢?