Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Ожидание окончания консольного приложения?


Автор: SERGSERG 16.11.2012, 15:53
Доброго времени суток.
Запускаю консольное приложение из приложения на дельфи7. При некоторых конфигурациях запуска консольного приложения, приложение на дельфи становиться недоступно. Пытаюсь перетащить форму, в шапке пишет - "Не отвечает". По истечении некоторого времени всё ОК. Думаю именно по истечению времени работы консольного приложения. 
Как этого избежать, что бы форма была всегда активна?

Помоему ошибка в этом коде
Код

    until not WasOK or (BytesRead = 0);

       // ждём пока завершиться консольное приложение

       WaitForSingleObject(PI.hProcess, INFINITE);
     
     finally

       // Закрываем все оставшиеся дискрипторы

       CloseHandle(PI.hThread);

       CloseHandle(PI.hProcess);

     end;
 
Помогите плиз smile 

Автор: Illusion Dolphin 16.11.2012, 22:08
Цитата

Как этого избежать, что бы форма была всегда активна?

Вынести обработку в поток (TThread)

Автор: bems 20.11.2012, 03:43
можно ждать с помощью RegisterWaitForSingleObject
но там неявный тред, поэтому нужно понимать что делаешь

Автор: SERGSERG 21.11.2012, 21:15
Ок. Благоарю за ответы, пока разбираюсь с потоками, думаю то что нужно  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)