У меня есть консольное приложение c. Я выполняю его из C# без использования режима перенаправления стандартного вывода и выполняю его синхронно, что отлично работает. Теперь я хочу сделать это в асинхронной манере, которая дает результат как синхронизированный способ. i.e Исключенное событие OutPutDataRecieved, но только после завершения консольного приложения (exe). Событие OutputDataRecieved запускается для каждой строки после завершения, а не мгновенно, как только оно получает строку на выходе.Чтение StdOut Asynch из приложения c-консоли
Код для asynch работает для CMD.exe и т. Д. Итак, я уверен, что его приложение на основе c имеет проблемы с выходом. FYI: Выход в консоли c выполняется с помощью printf. Основываясь на моих выводах: Я думаю, что приложение c console не дает вывод/запись в stdout, пока не завершит его выполнение. Я попытался настроить буфер на нуль или промывку после каждого printf, но никто не работает.
Любые трюки ??
Уход за публикацией соответствующего бита вашего кода на C#? –
У вас есть источник для приложений 'C' и C#? Возможно, это поможет, если вы продемонстрируете соответствующие детали. – pmg
Когда вы говорите, что вы задали буфер нулевым, используете ли вы функцию setvbuf? –