Один из продуктов моей компании отображает "почти в реальном времени" обновления данных с сервера, и есть несколько вещей, которые вы можете попробовать ....
Возможно, вы сможете переместить свой текст. Текст вне вызова диспетчера, если вы связываете его с данными, а не устанавливаете его напрямую.
вы можете сделать это так:
добавить свойство зависимости:
public static readonly DependencyProperty MessageTextProperty =
DependencyProperty.Register("MessageText", typeof(string), typeof(MyWidowClass),
new UIPropertyMetadata(string.Empty));
public string MessageText
{
get { return (int)GetValue(MessageTextProperty ); }
set { SetValue(MessageTextProperty , value); }
}
в текстовом поле xaml:
<TextBox Text="{Binding Path=MessageText, ElementName=xNameOfMyWindow}"/>
где xNameOfMyWindow - атрибут x: Name вашего оконного тега
теперь ваш код будет выглядеть так:
private void MainWindow_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
string message = sp.ReadLine();
if (string.IsNullOrWhiteSpace(message))
return;
this.MessageText = message;
}