Um Ihre Frage zu Umleiten Konsolenausgabe zu beantworten:
Sie werden den Code besser dran Ändern eines Ereignisses mit der Zeichenfolge, die Sie ausgeben wollen abzufeuern. Fügen Sie dann in der Benutzeroberfläche einen Handler für dieses Ereignis hinzu und aktualisieren Sie das Textfeld im Handler.
Um ein Ereignis hinzuzufügen, so etwas wie dieser Code in Ihrer Verarbeitungsklasse deklariert:
public event EventHandler<StringEventArgs> Process_Message;
wo StringEventArgs
eine Klasse auf EventArgs
, den die Nachricht wickelt für das Senden basiert.
das Ereignis ausgelöst, so etwas wie dieser Code in Ihrer Verarbeitungsklasse hinzu:
Process_Message(this, new StringEventArgs(message));
Um eine Nachricht Handler in Ihrer UI-Klasse anhänge:
process.Process_Message += Process_Message;
das Ereignis behandeln so etwas wie diese hinzufügen Code zu Ihrer UI-Klasse:
private void Process_Message(object sender, StringEventArgs e)
{
Action action =() => UpdateStatus(e.Message);
{
Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, action);
}
else
{
action();
}
}
Sie müssen den Threading-Test als U tun Ich kann nicht von einem anderen Thread aktualisiert werden.
Dann wird die UpdateStatus
Methode:
private void UpdateStatus(string message)
{
statusTextBox.Text = message;
}
Natürlich müssen Sie die Dinge benennen, um Ihre Anwendung geeignet sein.
Nachschlagen Ereignisse und EventArgs
in der MSDN.
Warum möchten Sie die Konsolenausgabe in eine Textbox umleiten? Diagnose? Protokollierung? – flq
Bitte stellen Sie verschiedene Fragen in einer anderen Frage. :) –