我有以下代码:

 private void button1_Click(object sender, EventArgs e)
    {
        Process process = new Process();
        ProcessStartInfo processStartInfo = new ProcessStartInfo();

        processStartInfo.Arguments = "-i 1 -x";
        processStartInfo.CreateNoWindow = false;
        processStartInfo.FileName = @"F:\NET\WiresharkPortable\App\Wireshark\tshark.exe";
        processStartInfo.RedirectStandardOutput = true;
        processStartInfo.UseShellExecute = false;
        process.StartInfo = processStartInfo;
        process.Start();

        StreamReader streamReader = process.StandardOutput;
        textBox1.AppendText(streamReader.ReadToEnd() + "\r\n");
    }


我正在尝试将输出重定向到我的程序。 tshark是嗅探器,因此它可以正常使用,直到被暂停。如何实时重定向数据?谢谢。

最佳答案

您当前正在调用ReadToEnd,它将阻塞到流的末尾。

您可以从单独的线程重复调用Read,也可以使用更新的事件处理方法,在调用Process.OutputDataReceived之后为每行处理BeginOutputReadLine。更改文本框之前,请不要忘记将其编组回UI线程。

10-08 05:18