2017-07-22 68 views
0

1つのオブジェクトの複数のスレッドが原因でプログラムがクラッシュするアプリケーションでエラーが発生しました。私はC#で新しく、すでにそれを学んでいるからです。私は呼び出しますとあまり慣れていないですなどWPF InvokeとMethodInvoker

ここ

私のクラッシュの原因であるコードです:

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で起動して働いたことはありません私は多分uはウェブサイトに私をリンクすることができますWPFでそれを記述する方法がわからない)

答えて

2

WPFでは、あなたが非UIスレッドからUIを更新することができますDispatcherクラスが、そこにある:?

private void AppendText(string text) 
{   
    Dispatcher.BeginInvoke(() => 
    { 
     this.richTextBox.AppendText(text + Environment.NewLine); 
    }); 
} 
+0

ああいいです。そのコードを今すぐ終了する – xKushGene