OutputDataReceived (и ErrorDataReceived) имеет низкую скорость срабатывания и создает большой буфер - PullRequest
2 голосов
/ 06 ноября 2010

есть ли способ увеличить скорость, с которой объект Process в .NET генерирует событие OutputDataReceived ?Он создает большой буфер (я думаю, 1024 символа), который выгружается навалом, что делает приложение не таким подвижным, как хотелось бы.

Заранее спасибо!

1 Ответ

2 голосов
/ 17 мая 2011

Process.OutputDataReceived Событие генерируется только при следующих двух условиях.

  1. В выводе встречается символ новой строки
  2. Получены полные данные

Так что если и только если у вас есть символ новой строки в выходном потоке, событие будет запущено, иначе оно будет ожидать полных данных, а затем событие будет запущено.

Я только что проверил это до 968000 байт. Событие возникает только после того, как все данные получены, поскольку я не сохранил ни одного символа новой строки в выводе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...