【问题标题】:Update List view from Process callback output instantly C# WPF立即从进程回调输出更新列表视图 C# WPF
【发布时间】:2018-07-29 01:03:03
【问题描述】:

我正在尝试从读取进程标准输出的回调函数更新我的列表视图。 我正在做这样的事情:

process.OutputDataReceived = function();

public void function() {
    this.Dispatcher.Invoke((MethodInvoker)() => {
        listview.Items.add(newItem);
    });
}

这会更新我的列表视图,但仅在进程完成时!

我希望它立即更新列表视图,但我不知道它是如何以及为什么不这样做的。

谢谢。

【问题讨论】:

  • 那么您是如何从标准输出中读取数据的呢?请出示您的代码。

标签: c# wpf multithreading user-interface process


【解决方案1】:
public void StartProcess()
{
   var myProcessStartInfo = new ProcessStartInfo()
   {
       UseShellExecute = false,
       FileName = exePath,
       CreateNoWindow = false,
       ErrorDialog = true
   };
   var process = new Process();
   process.StartInfo = myProcessStartInfo;
   process.EnableRaisingEvents = true;
   process.OutputDataReceived += function;
   process.BeginOutputReadLine();
   process.WaitForExit();
}

public void function() 
{
   this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, new Action(() => { listview.Items.add(newItem);}));
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    相关资源
    最近更新 更多