【发布时间】:2012-04-07 12:39:00
【问题描述】:
我最近获得了一些用于服务器控制台包装器的源代码。该程序最初是在 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 中没有这样的东西 - 有没有办法将其更改为后台工作者或其他东西(我几乎没有做过任何多线程)?
【问题讨论】:
标签: wpf winforms multithreading backgroundworker dispatcher