RichTextBox性能问题(文本框中的文本过多)

时间:2019-05-21 06:55:22

标签: c# wpf performance load richtextbox

当前,我正在尝试将日志文件加载到RichTextBox中,但是问题是当我向下滚动时,总是加载文本,因为日志文件中包含大量数据(65mb)。性能在50秒之内恶化得如此之多,以至于我的程序无法运行。

有人对我有改进建议或解决方案吗? 我当前的受训者任务是编写一个搜索工具,您可以在其中读取日志文件并在其中搜索某些关键字。我应该使用RichTextBox以外的其他元素吗?

1 个答案:

答案 0 :(得分:1)

无论您以何种方式查看,65meg的数据都需要保存到内存中。

这意味着您在此过程中可能还会遇到其他问题。

尽管找到它们,但要对其进行处理。

目前,您需要一些可能可行的东西。

这里的示例使用一个列表框来显示每行一行。

每行是一个水平排列的列表视图。

每个列表视图的数据由使用正则表达式拆分的字符串组成。

一个没有匹配项,如果在一行中找到一个匹配项,则最多三个。

每个块都有一个具有IsMatch属性的视图模型(RunHI)。

如果是这样,数据触发将背景设置为黄色。

https://gallery.technet.microsoft.com/WPF-Highlight-Matching-71ad5a04

该示例使用固定的字符串列表,但您可以将https://docs.microsoft.com/en-us/dotnet/api/system.io.file.readalllines?view=netframework-4.8重新读入数组并对其进行遍历。