WPF Textblock как окно терминала.Нужно ли устанавливать лимит? - PullRequest
0 голосов
/ 25 сентября 2019

Я пишу новое управляющее приложение WPF с нуля на основе версии winForm.Контроль будет контролировать машину по серийному.Внутри элемента управления я хочу иметь текстовое окно, которое будет контролировать входные данные, поступающие с машины.

Для этого у меня есть элемент управления TextBlock.Я обеспокоен тем, что, поскольку это выполняется постоянно, TextBlock может вызвать проблемы с памятью по мере роста хранимых данных.Элемент управления может работать в течение нескольких месяцев без перезапуска.

Мне не повезло в поиске ограничений памяти TextBlock и обработки старой информации.

Есть ли что-то, что я должен сделать, чтобы предотвратить бесконечное хранение данных в блоке и вызвать проблемы в будущем?Или есть лучший контроль для отображения и мониторинга входящих данных с машины?

Я еще не написал код для этого, так как хочу начать все правильно.Однако, когда я сделал это с помощью winform, я использовал TextBox.Там у меня был обработчик событий для обнаружения входящих данных и использования stringbuilder для

textbox.AppendText(Environment.newline + string)

полученных данных в окне.Я думал, что TextBlock может быть лучшим способом пойти в этом раунде.

1 Ответ

0 голосов
/ 25 сентября 2019

Вы можете использовать StringBuilder для создания string, для которого вы затем устанавливаете свойство Text для TextBlock.Любое старое значение Text будет иметь право на сборку мусора.Нет никакого способа и не должно быть никаких причин для «ограничения памяти TextBlock и обработки старой информации».

Или есть ли лучший элемент управления для отображения и мониторинга входящих данных с аппарата?

Независимо от того, используете ли вы TextBlock или TextBox, это не должно иметь большого значения с точки зрения памяти и производительности.Если вам нужно, чтобы текст был выделен, лучше выбрать TextBox.В противном случае вам следует выбрать TextBlock.Нет более легкого способа отображения текста в приложении WPF.

...