在Windows窗体列表框(Visual Studio 2015)中显示最后的“ n”个项目时出现性能问题

时间:2018-08-31 07:26:32

标签: c# winforms performance

我正在使用ListBox显示实时应用程序的最后“ n”个项目(例如10000)。我正在从系统中接收大约10行数据,一秒钟的时间。一旦ListBox行达到“ n”(例如10000),我将手动删除前10个项目(使用While循环)并添加新接收的10个项目(使用While循环)。随着数据输入流量的增加,UI在执行删除/添加操作时被冻结。如果我们注释删除操作,则应用程序运行正常。意味着如果仅执行添加操作,则应用程序可以正常运行超过1条缺少的行。

请分享建议:

  1. 如何在UI中仅显示最后的“ n”个项目?

  2. 列表框以外的其他选项是否可用?

  3. 是否有任何LINQ查询可用于从列表框中删除前几项(例如10),以便删除操作更快。

开发环境:

带有Visual Studio 2015的Windows窗体应用程序

谢谢。

此致

哈里。

1 个答案:

答案 0 :(得分:1)

任何东西中的10000个项都有些浪费,周围有使用虚拟化的控件。也就是说,他们只保留需要显示的内容

不过,您可能想看看ListBox.BeginUpdate Method,这可能有助于删除

  

在将项目一次添加到ListBox时保持性能   通过阻止控件绘制直到EndUpdate()   方法被调用。