我最近获得了一些用于服务器控制台包装器的源代码。该程序最初是在 WPF 中,部分代码是:
private void ServerProc_ErrorDataReceived(object sender, DataReceivedEventArgs e)
{
Dispatcher.Invoke(new Action(() =>
{
ConsoleTextBlock.Text += e.Data + "\r\n";
ConsoleScroll.ScrollToEnd();
}));
}
private void ServerProc_OutputDataReceived(object sender, DataReceivedEventArgs e)
{
Dispatcher.Invoke(new Action(() =>
{
ConsoleTextBlock.Text += e.Data + "\r\n";
ConsoleScroll.ScrollToEnd();
ParseServerInput(e.Data);
}));
}
它在两个空白处也有这个注释:
// 您必须通过 Dispatcher 执行此操作,因为此方法由不同的线程调用
但是在 WinForms 中没有这样的东西 - 有没有办法将其更改为后台工作人员或其他东西(我几乎没有做过任何多线程)?