C# wpf 异步添加子元素到 Layout

C# wpf adding children to Layout asynchronously

我有一个 WPF 应用程序,我是 运行 一个 returns 字符串序列的 powershell 脚本。我希望能够异步更新我的 UI,但是 UI 只会在该方法完成后更新。如何异步更新 UI?我一直在阅读很多其他类似的例子,比如这个: 也许这行得通,但我可能没有正确实施它?

我的代码:

private void NextButton_Click(object sender, RoutedEventArgs e)
        {
            RunPreCheck();
        }

public void RunPreCheck()
        {

            var startInfo = GetPowerShellStartInfo();
            proc = Process.Start(startInfo);

            while (!proc.StandardOutput.EndOfStream)
            {

                string line = proc.StandardOutput.ReadLine();
                var myObject= new MyCustomObject(line);
                myGrid.Children.Add(myObject);
          
            } 
        }

运行 RunPreCheck() 在后台线程上:

private void NextButton_Click(object sender, RoutedEventArgs e)
{
    Task.Run(RunPreCheck);
}

public void RunPreCheck()
{
    var startInfo = GetPowerShellStartInfo();
    proc = Process.Start(startInfo);

    while (!proc.StandardOutput.EndOfStream)
    {
        string line = proc.StandardOutput.ReadLine();

        myGrid.Dispatcher.BeginInvoke(
            new Action(() => myGrid.Children.Add(new MyCustomObject(line))));

    }
}