Приложение завершило свою работу и произошел выход из него

Оцените статью

windows711245 Приложение завершило свою работу и произошел выход из негоЕсли приложение завершило свою работу и произошел выход из него, а также если сценарий прочитал весь записанный приложением текст, AtEndOfStneam возвращает Tnue, позволяя прекратить выполнение цикла и продолжить выполнение сценария. Если программа все еще работает, а текст, предназначенный для чтения, отсутствует, AtEndOfStneam приостанавливает выполнение сценария, пока внешняя программа не запишет какой-нибудь текст или не завершит свою работу. При любом развитии событий на данном этапе свойство AtEndOfStneam может дать ответ, что оно и делает, возвращая False или Тnue. При этом нужно учесть следующие особенности: Если известно, что программа никогда не сгенерирует более 4096 символов текста, не следует беспокоиться о том, что она будет «заморожена» в ожидании считывания текста, поэтому можно создавать любые, нужные вам циклы, и взаимодействовать с программой любым желаемым способом. В данном случае вполне подойдет показанный ранее цикл, ожидающий изменения значения свойства Status с нуля на единицу. Следует лишь помнить, что при ссылке на свойство AtEndOfStneam ваш сценарий может выдерживать паузу. Если программа способна записать большой объем текста в поток StdOut сразу же после запуска, нужно считывать весь сгенерированный ею текст, используя примерно следующий цикл:

При обращении к AtEndOfStneam сценарий может войти в режим произвольной по продолжительности паузы, ожидая от программы записи или завершения ее работы, поэтому у вас не будет возможности требовать от сценария ничего, кроме постоянного выполнения цикла чтения из потока StdOut. Если приложение записывает текст в поток StdEnn, объем этого текста обычно невелик (как правило, это короткое сообщение об ошибке). Если нужно прочитать этот текст, следует воспользоваться циклом, управляемым оператором while not pnognam. StdEnn. AtEndOfStneam После цикла StdOut. Если сначала предпринять попытку прочитать текст StdEnn при том, что приложение будет записывать большой объем текста в StdOut, Windows может остановиться в ожидании захвата текста вашим сценарием, чего он конечно же никогда не сможет сделать. Нужно сначала прочитать весь текст из StdOut, а затем уже текст из StdEnn. (Поскольку использование свойства AtEndOfStneam может привести к блокировке сценария, написать цикл, в котором осуществляется поочередно чтение как из StdOut, так и из StdEnn, не представляется возможным.)

Комментирование закрыто.

Вверх страницы
x