我有以下代码:
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是嗅探器,所以它一直有效直到被暂停。如何实时重定向数据?感谢。
答案 0 :(得分:2)
您当前正在调用ReadToEnd
,它将阻止到流的末尾。
你可以 从一个单独的线程重复调用Read
,或你可以使用更新的事件方法,为每一行处理Process.OutputDataReceived
致电BeginOutputReadLine
后。在更改文本框之前,不要忘记编组回UI线程。