У меня проблема с асинхронным чтением вывода одного процесса в C#. Я нашел несколько других подобных вопросов на этом сайте, но они мне не очень помогают. Вот что я делаю:
Работает нормально, но в выводе запущенного процесса выводятся проценты (%
), которые я хочу получить, но не могу, так как мой код читается построчно, а проценты не отображаются .
Пример:
%0,%1...%100
Finished.
Мой вывод:
%0
Finished.
Вот текущий код моей программы:
StringBuilder sBuilder = new StringBuilder();
static void proc_OutputDataReceived(object sender, DataReceivedEventArgs e)
{
sBuilder.AppendLine(e.Data);
}
static void CommandExecutor()
{
Process process = new Process
{
StartInfo = new ProcessStartInfo
{
FileName = /*path of the program*/,
Arguments = /*arguments*/,
CreateNoWindow = true,
UseShellExecute = false,
WindowStyle = ProcessWindowStyle.Hidden,
RedirectStandardOutput = true
}
};
process.OutputDataReceived += new DataReceivedEventHandler(proc_OutputDataReceived);
process.Start();
process.BeginOutputReadLine();
process.WaitForExit();
}