首页 > 解决方案 > WPF 文本块作为终端窗口。我需要设置限制吗?

问题描述

我正在基于 winForm 版本从头开始编写新的 WPF 控件应用程序。该控件将通过串行监控机器。在控件中,我希望有一个文本窗口来监视来自机器的输入数据。

为此,我有一个 TextBlock 控件。我担心的是,由于它不断运行,TextBlock 可能会随着存储数据的增长而导致内存问题。该控件可以运行数月而无需重新启动。

在限制 TextBlock 内存和处理旧信息方面,我没有任何搜索运气。

我应该做些什么来防止块无限存储数据并导致问题发生?或者是否有更好的控制来显示和监控来自机器的传入数据?

我还没有为此编写代码,因为我想正确启动它。但是,当我使用 winform 执行此操作时,我使用了 TextBox。在那里我有一个事件处理程序检测传入的数据并使用 stringbuilder 来

textbox.AppendText(Environment.newline + string)

接收到的数据到窗口。我认为 TextBlock 可能是这一轮的更好方法。

标签: c#wpftextblock

解决方案


您可以使用 aStringBuilder创建一个string,然后将其Text属性设置TextBlock为。任何旧Text值都将有资格进行垃圾回收。没有办法也不应该有理由“限制 TextBlock 内存和处理旧信息”。

或者是否有更好的控制来显示和监控来自机器的传入数据?

就内存和性能而言,您使用 aTextBlock还是 aTextBox并不重要。如果您需要选择文本,aTextBox是更好的选择。否则,您应该选择TextBlock. 在 WPF 应用程序中显示文本没有更轻量级的方法了。


推荐阅读