private static void runantc_OutputDataReceived(object sendingProcess, DataReceivedEventArgs outLine)
{
// Collect the sort command output.
if (!String.IsNullOrEmpty(outLine.Data))
{
ProcoutputTextBlock.Dispatcher.BeginInvoke(new Action(() => { ProcoutputTextBlock.Text += outLine.Data; }, null));
}
}
嗨,在上面的代码中我遇到了错误@ ProcoutputTextBlock
错误1非静态字段,方法或属性'WpfApplication1.Window1.ProcoutputTextBlock'需要对象引用
和@ () => { ProcoutputTextBlock.Text += outLine.Data; }, null
错误2预期的方法名称
任何人都可以启发我吗?
答案 0 :(得分:2)
您的函数是static
,这意味着它需要引用类的实例才能访问任何实例成员。由于我假设您的窗口ProcoutputTextBlock
是TextBlock
,因此需要一个实例才能访问它。
另一个选择是使该函数非静态,但由于您没有显示如何附加此事件处理程序,我不知道这是否适合您。
答案 1 :(得分:1)
ProcoutputTextBlock
是一个实例属性。您正在从静态方法runantc_OutputDataReceived
访问实例属性。
要解决此问题,请从static
声明中删除runantc_OutputDataReceived
。
要解决第二个问题,请删除第二个参数null
。像这样:
ProcoutputTextBlock.Dispatcher.BeginInvoke(new Action(() => { ProcoutputTextBlock.Text += outLine.Data; }));
或
ProcoutputTextBlock.Dispatcher.BeginInvoke((Action)(() => { ProcoutputTextBlock.Text += outLine.Data; }));