当前,我正在尝试将日志文件加载到RichTextBox中,但是问题是当我向下滚动时,总是加载文本,因为日志文件中包含大量数据(65mb)。性能在50秒之内恶化得如此之多,以至于我的程序无法运行。
有人对我有改进建议或解决方案吗? 我当前的受训者任务是编写一个搜索工具,您可以在其中读取日志文件并在其中搜索某些关键字。我应该使用RichTextBox以外的其他元素吗?
答案 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重新读入数组并对其进行遍历。