Чтобы ответить на ваш вопрос о перенаправлении вывода консоли:
Вам будет лучше изменить код, чтобы запустить событие со строкой, которую вы хотите вывести. Затем в пользовательском интерфейсе добавьте обработчик для этого события, а в обработчике обновите текстовое поле.
Чтобы объявить событие, добавьте что-то вроде этого кода в ваш класс обработки:
public event EventHandler<StringEventArgs> Process_Message;
где StringEventArgs
- класс, основанный на EventArgs
, который упаковывает сообщение для отправки.
Чтобы запустить событие, добавьте что-то вроде этого кода в ваш класс обработки:
Process_Message(this, new StringEventArgs(message));
Чтобы добавить обработчик сообщений в ваш класс пользовательского интерфейса:
process.Process_Message += Process_Message;
Чтобы обработать событие, добавьте что-то вроде этого кода в ваш класс пользовательского интерфейса:
private void Process_Message(object sender, StringEventArgs e)
{
Action action = () => UpdateStatus(e.Message);
{
Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, action);
}
else
{
action();
}
}
Вам необходимо выполнить тест многопоточности, поскольку пользовательский интерфейс не может быть обновлен из другого потока.
Затем метод UpdateStatus
:
private void UpdateStatus(string message)
{
statusTextBox.Text = message;
}
Очевидно, вам нужно будет переименовать вещи в соответствии с вашим приложением.
Поиск событий и EventArgs
в MSDN.