我的应用程序中有一个错误,程序崩溃是因为一个对象的多个线程。因为我是C#的新手并且已经在学习它。我对Invokes等并不熟悉。
以下是导致我崩溃的原因:
private void AppendText(string text)
{
this.Invoke(new MethodInvoker(delegate
{
this.richTextBox.AppendText(text + Environment.NewLine);
}));
}
UpdateProcess.OutputDataReceived += (s, e) => richTextBox.AppendText(e.Data);
但WPF不知道这个(我以前从未在WPF中使用过Invoke,因此我不知道如何在WPF中编写它也许你可以将我链接到一个网站?)
答案 0 :(得分:2)
在WPF中有Dispatcher
类,它允许您从非UI线程更新UI:
private void AppendText(string text)
{
Dispatcher.BeginInvoke(() =>
{
this.richTextBox.AppendText(text + Environment.NewLine);
});
}