C# Streamreader Сбросить конец потокаC#

Место общения программистов C#
Ответить
Anonymous
 C# Streamreader Сбросить конец потока

Сообщение Anonymous »

Код: Выделить всё

private void RunBatchFile()
{
string argument = CreateArgument(batchFilePath);

ProcessStartInfo proc = new ProcessStartInfo();

proc.FileName = filename;
proc.Arguments = argument;
proc.UseShellExecute = false;
proc.RedirectStandardOutput = true;
proc.CreateNoWindow = true;

using (Process process = Process.Start(proc))
{
//Read in all the text from the process with the StreamReader.
using (StreamReader reader = process.StandardOutput)
{
string result = reader.ReadToEnd();
streamLines.Add(result);
textBox1.AppendText(result + "\r\n");

//ParseData(result);
}
}
}
Я использую описанный выше метод в C# WinForms для запуска пакетного файла, который, в свою очередь, запускает .exe, который представляет собой программу C, которая использует printf() для отправки данных в командное окно. Этот метод перенаправляет вывод этого командного окна в мое текстовое поле C#. И это работает нормально.
Однако программа на языке C отправляет первоначальный набор данных, затем задерживается на 1 секунду и отправляет остаток своих данных в командное окно. И мой C# StreamReader считает, что конец исходного набора данных представляет собой конец потока, и игнорирует набор данных после таймера в 1 секунду.
Кто-нибудь знает, как я могу это сказать StreamReader немного подождать? Спасибо

Подробнее здесь: https://stackoverflow.com/questions/791 ... -of-stream
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»