2017-07-22 6 views
0

Ich habe einen Fehler in meiner Anwendung, wo das Programm aufgrund mehrerer Threads eines Objekts abstürzt. Weil ich neu in C# bin und es bereits lerne. Ich bin nicht viel familar mit den Invokes usw.WPF Invoke und MethodInvoker

Hier ist der Code, die der Grund für meinen Absturz:

private void AppendText(string text) 
{ 
    this.Invoke(new MethodInvoker(delegate 
    { 
     this.richTextBox.AppendText(text + Environment.NewLine); 
    })); 
} 

UpdateProcess.OutputDataReceived += (s, e) => richTextBox.AppendText(e.Data); 

Aber WPF weiß nicht, dies (ich nie mit Invoke in WPF gearbeitet, bevor so dass ich weiß nicht, wie es in WPF schreiben vielleicht kann mir einen Link zu einer Webseite)

Antwort

2

in WPF gibt Dispatcher Klasse, die Sie UI von nicht-UI-Threads aktualisieren können:

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

ah okay . Es gibt jetzt weniger Code – xKushGene