c# - 从 StandardOutput 获取二进制数据

标签 c# process binary-data redirectstandardoutput

我正在用类似于下面的代码开始一个过程:

// some of the flags are not needed
process.StartInfo.CreateNoWindow = true;
process.StartInfo.ErrorDialog = false;
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.RedirectStandardOutput = true;
process.EnableRaisingEvents = true;
process.OutputDataReceived += process_OutputDataReceived;
process.ErrorDataReceived += process_OutputDataReceived;
process.Start();
process.BeginErrorReadLine();
process.BeginOutputReadLine();

void process_OutputDataReceived(object sender, DataReceivedEventArgs e)
{
}

void process_ErrorDataReceived(object sender, DataReceivedEventArgs e)
{
}

我遇到的问题是 DataReceivedEventArgs 对象有一个 Data 属性,它是一个字符串。我需要将标准输出数据读取为二进制数据。我猜想没有办法将字符串数据恢复为适当的二进制数据,因此任何关于使用不同方法接收二进制数据的建议都会很棒。

最佳答案

Bradley Grainger 对这个问题发表了评论是对的。事件处理程序不支持从标准输出中检索二进制数据。不得不切换到使用主循环并使用读取函数从标准输出中提取数据。

关于c# - 从 StandardOutput 获取二进制数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6803675/

相关文章:

c# - CefSharp WPF Web 浏览器未显示或呈现

c# - 如何在 C# 中替换文件中的多个文本?

c# - 系统找不到进程启动中指定的文件异常(tscon.exe)

linux - 在 Linux 中立即检测新进程的创建

c# - 我们在以下代码中使用 "using statement"的原因是什么?

javascript - 获取还具有特定数据属性值的已选中复选框的列表

通过重新执行的 Python 对象持久性

python - 在 Python 3 中从 CGI 输出二进制数据

javascript - 如果二进制数据是 "4 byte single format",这意味着什么?如何在 JavaScript 中读取它?

binary-data - SREC 或 Intel HEX 等十六进制格式的优势