Q:

Как передать вывод из консоли в TextBox из другого класса

Есть NewClass.cs в котором я собираю данные о ipconfig из cmd
Как мне из этого класса вывести данные ( через аргументы ) в TextBox который лежит на форме?!
public static class NewClass
{
     public static void Test()
     {
         ProcessStartInfo Info = new ProcessStartInfo
         {
            FileName = "cmd.exe",
            Arguments = "ipconfig /all",
            CreateNoWindow = false,
            UseShellExecute = false,
            WindowStyle = ProcessWindowStyle.Normal
         };
         Process result = Process.Start(Info);
         result.WaitForExit();
    }
}

На форме лежит TextBox нужно сделать вызов метода Test(с передачей аргументов) из классаNewClass.cs чтобы всё из командной строки (cmd.exe) выводилось в этот TextBox без появления консоли. 
Как это реализовать?\

A:

IProgress колбэк здесь очень кстати.
private void button1_click(object sender, EventArgs e)
{
    IProgress<string> progress = new Progress<string>(s =>
    {
        textBox1.SelectionStart = textBox1.Text.Length;
        textBox1.SelectedText = s + Environment.NewLine;
        textBox1.ScrollToCaret();
    });
    NewClass.Test(progress);
}

public static class NewClass
{
    public static void Test(IProgress<string> progress)
    {
        Process process = new Process();
        process.StartInfo.FileName = "cmd.exe";
        process.StartInfo.Arguments = "/K ipconfig /all";
        process.StartInfo.CreateNoWindow = true;
        process.StartInfo.UseShellExecute = false;
        process.StartInfo.RedirectStandardOutput = true;
        process.StartInfo.RedirectStandardError = true;
        process.StartInfo.StandardOutputEncoding = Encoding.GetEncoding(866);
        process.StartInfo.StandardErrorEncoding = Encoding.GetEncoding(866);
        var handler = new DataReceivedEventHandler((s, e) => progress?.Report(e.Data));
        process.OutputDataReceived += handler;
        process.ErrorDataReceived += handler;
        process.Start();
        process.BeginOutputReadLine();
        process.BeginErrorReadLine();
    }
}

