我正在使用ListBox显示实时应用程序的最后“ n”个项目(例如10000)。我正在从系统中接收大约10行数据,一秒钟的时间。一旦ListBox行达到“ n”(例如10000),我将手动删除前10个项目(使用While循环)并添加新接收的10个项目(使用While循环)。随着数据输入流量的增加,UI在执行删除/添加操作时被冻结。如果我们注释删除操作,则应用程序运行正常。意味着如果仅执行添加操作,则应用程序可以正常运行超过1条缺少的行。
请分享建议:
如何在UI中仅显示最后的“ n”个项目?
列表框以外的其他选项是否可用?
是否有任何LINQ查询可用于从列表框中删除前几项(例如10),以便删除操作更快。
开发环境:
带有Visual Studio 2015的Windows窗体应用程序
谢谢。
此致
哈里。
答案 0 :(得分:1)
任何东西中的10000个项都有些浪费,周围有使用虚拟化的控件。也就是说,他们只保留需要显示的内容
不过,您可能想看看ListBox.BeginUpdate Method,这可能有助于删除
在将项目一次添加到ListBox时保持性能 通过阻止控件绘制直到EndUpdate() 方法被调用。