相关疑难解决方法(0)

慢速 WPF 文本框

我正在开发一个简单的串行数据查看器,它将用于观察传输到计算机串行端口之一的数据。我使用 C# 和 WPF 编写了一个测试应用程序;它只是将最近读取的行放入文本块中。但是,它会跳过所有其他行。我的理论是,在 WPF 渲染窗口之前,新数据会被放入文本块中。然而,我已经尝试了我能想到的所有线程优先级组合,并且应用程序最多显示每隔一行;最坏的情况是每 20 行显示一次。

我正在多核计算机上运行。我的应用程序由一个文本块和一个用于打开/关闭端口的按钮组成。(我尝试用文本框替换文本块,并且我观察到同样的问题)

我的DataReceived处理程序:

private void MainWindow_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
    string message = sp.ReadLine();
    if (string.IsNullOrWhiteSpace(message))
        return;

    this.Dispatcher.BeginInvoke(DispatcherPriority.Send, (ThreadStart)delegate()
    {
        text.Text = message;
        this.InvalidateVisual();
    });
}
Run Code Online (Sandbox Code Playgroud)

该应用程序的最高优先级是处理大量数据的持续吞吐量;WPF 适合这种情况吗?如果是的话,我做错了什么?

c# wpf textbox serial-port

3
推荐指数
1
解决办法
5065
查看次数

标签 统计

c# ×1

serial-port ×1

textbox ×1

wpf ×1