Проблемы с производительностью RichTextBox (слишком много текста в текстовом поле) - PullRequest
0 голосов
/ 21 мая 2019

В настоящее время я пытаюсь загрузить свои файлы журналов в RichTextBox, но проблема в том, что при прокрутке вниз текст всегда загружается, потому что в файле журнала много данных (65 МБ).В течение 50 секунд производительность ухудшается настолько, что моя программа зависает.

У кого-нибудь есть предложения по улучшению или решение для меня.Моя текущая задача стажера состоит в том, чтобы написать инструмент поиска, где вы можете читать файлы журналов и искать их по определенным ключевым словам.Должен ли я использовать элемент, отличный от RichTextBox?

1 Ответ

1 голос
/ 21 мая 2019

65 мг данных - это много, что нужно хранить в памяти, как бы вы на это ни смотрели.

Это означает, что на пути могут возникнуть и другие проблемы.

Работайте над ними, когда найдете их.

Пока вам нужно что-то, что может сработать.

В этом примере используется список для представления строки в строке.

Каждая строка является списком, который расположен горизонтально.

Данные для каждого просмотра списка состоят из строк, разделенных с помощью регулярных выражений.

Один без совпадения, до трех, если в строке найдено одно совпадение.

Для каждого чанка имеется модель представления (RunHI), у которой есть свойство IsMatch.

Если это правда, фон устанавливает желтый цвет с помощью источника данных.

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 в массив и прочитать их.

...