![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
semibug |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 323 Регистрация: 27.3.2009 Репутация: нет Всего: нет |
Запускаю внешнее приложение:
Далее выполняются другие задачи. Почему то все события вывода сообщений в std::cout из внешнего приложения случаются скопом, одно за другим, после завершения внешнего приложения. Хотелось бы получать данные по мере их генерации внешней программой. Подскажите, как это правильно сделать? |
|||
|
||||
userdab |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 3.9.2010 Репутация: нет Всего: нет |
Посмотрите эту тему
|
|||
|
||||
semibug |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 323 Регистрация: 27.3.2009 Репутация: нет Всего: нет |
userdab, в моем случае вызов process.BeginOutputReadLine() находится не в UI потоке.
Нагуглил, что данные, выплевываемые внешней программой в std::cout проходят буферизацию. Т.е. пока их не наберется большое кол-во или процесс не завершиться, мы их получить не можем. Наверное должно быть какое-то решение получать от чужого приложения вывод в консоль асинхронно. Но пока в голову ничего не приходит. Добавлено через 3 минуты и 46 секунд Решил с помощью std::cout.flush() во внешней программе. Теперь события возникают стразу, как только выполняется flush. |
|||
|
||||
semibug |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 323 Регистрация: 27.3.2009 Репутация: нет Всего: нет |
Не могу сообразить как разобрать откуда пришел текст, если было запущено несколько процессов, для этого надо использовать разные обработчики?
|
|||
|
||||
semibug |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 323 Регистрация: 27.3.2009 Репутация: нет Всего: нет |
Почему то некоторые строки просто пропадают (обработчик не срабатывает). Например если писать из запущенного приложения в std::cout числа от 1 до 100, то в обработчик могут попасть 1, 2, 5, 9 и т.д..
|
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | .NET для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |