我正在尝试在邮件到达时从事件处理程序更新Rich Text Box。由于某种原因,富文本框仅在所有消息到达时才更新。
我正在使用的代码:
private void OutputMessageToLogWindow(string message)
{
Application.Current.Dispatcher.BeginInvoke(new Action(() =>
{
outputRichTxtBox.AppendText(message);
test.Text = message;
}));
}
答案 0 :(得分:1)
我认为您的代码不是线程安全的,如果是并发消息,可能会通过同时执行以下行来更新某些消息:
var a = 3;
function printStuff(){
console.log(a+1);
console.log(a/3);
console.log(a*2);
}
printStuff();
为了使其成为线程安全的,我建议您在outputRichTxtBox.AppendText(message);
test.Text = message;
方法中使用lock
:
BeingInvoke