我一直试图让这个与这里的几个教程/答案一起工作,但不幸的是无法这样做。
我想做的是执行一个进程,捕获它的 DefaultOutput 并将其添加到一个字节数组中。到目前为止我得到的是:
private void startProcess(string path, string arguments)
{
Process p = new Process();
p.StartInfo.FileName = path;
p.StartInfo.Arguments = arguments;
p.StartInfo.UseShellExecute = false;
p.StartInfo.CreateNoWindow = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.OutputDataReceived += p_OutputDataReceived;
p.EnableRaisingEvents = true;
p.Start();
p.BeginErrorReadLine();
p.BeginOutputReadLine();
p.WaitForExit();
}
void p_OutputDataReceived(object sender, DataReceivedEventArgs e)
{
string str = e.Data;
// what goes here?!
}
我现在的问题是:如何将这些数据添加到(增长的)字节数组中,或者是否有另一种更适合此目的的数据类型?另外我不确定在哪里声明这个目标字节数组,最好是在startProcess
方法中的某个地方,这样我就可以在进程退出后继续处理数据,但是我怎么能把它传递给p_OutputDataReceived
呢?
谢谢!