Считать поток из командной строки

Всем привет! Пишу GUI на C#(winforms),которое работает c программатором Jlink.Не получается считать ответ из командной строки при команде b_Send_Click.В Textbox ничего не отображается. Подскажите пжлст,что не так?

public partial class MainForm : Form
    {
        Thread thr;
        Process prc;
        System.Timers.Timer tm;
        StreamWriter prc_input;
        public MainForm()
        {
            InitializeComponent();
            tm = new System.Timers.Timer(500);
            tm.Elapsed += Tm_Elapsed;
        }

        private void Tm_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
        {
            Invoke((MethodInvoker)delegate {
            t_Response.Lines = buf.ToArray();
            Update();
            });
            
        }

        private void RunCommand()
        {
            prc = new Process();
            ProcessStartInfo prc_info = new ProcessStartInfo()
            {
                 FileName = @"C:\Program Files\SEGGER\JLink\JLink.exe",
                 UseShellExecute = false,
                RedirectStandardOutput = true,
                RedirectStandardError = true,
                RedirectStandardInput = true
            };
            prc.StartInfo = prc_info;
            prc.ErrorDataReceived += Prc_ErrorDataReceived;
            prc.OutputDataReceived += Prc_OutputDataReceived;
            
            prc.Start();
            prc.StandardInput.WriteLine("connect");
            prc.StandardInput.WriteLine("NRF52811_XXAA");
            prc.StandardInput.WriteLine("SWD");
            prc.StandardInput.WriteLine("4000");
            prc.BeginOutputReadLine();
            prc.BeginErrorReadLine();
            prc_input = prc.StandardInput;
            prc.WaitForExit();
        }

        private void b_Start_Click(object sender, EventArgs e)
        {
            tm.Start();
            thr = new Thread(RunCommand);
            thr.Start();
            b_Send.Enabled = true;
        }

        List<string> buf = new List<string>();
        private void Prc_OutputDataReceived(object sender, DataReceivedEventArgs e)
        {
            buf.Add(e.Data);
        }

        private void Prc_ErrorDataReceived(object sender, DataReceivedEventArgs e)
        {
            buf.Add(e.Data);
        }

        private void b_Send_Click(object sender, EventArgs e)
        {
            prc_input.WriteLine(t_Command.Text);
           
        }

        private void b_End_Click(object sender, EventArgs e)
        {
            b_Send.Enabled = false;
            tm.Stop();
            prc.Kill();
        }
               
    }

Ответы (0 шт):