Форум: "Основная";
Текущий архив: 2006.08.06;
Скачать: [xml.tar.bz2];
ВнизОсобенности запуска процесса Найти похожие ветки
← →
Darvin © (2006-06-23 11:39) [0]Здравствуйте.
Мне надо запустить процесс и дождаться окончания его выполнения. Я делаю так:
var
SI : STARTUPINFO;
PI : PROCESS_INFORMATION;
begin
...
ZeroMemory ( @SI, SizeOf(SI) );
SI.cb := SizeOf ( SI );
if CreateProcess ( nil,
PChar(FAppName + " " + FAppParams),
nil, // Process handle not inheritable.
nil, // Thread handle not inheritable.
FALSE, // Set handle inheritance to FALSE.
0, // No creation flags.
nil, // Use parent"s environment block.
nil, // Use parent"s starting directory.
SI,
PI )
then
begin
WaitForSingleObject ( PI.hProcess, INFINITE );
CloseHandle ( PI.hProcess );
CloseHandle ( PI.hThread );
...
Все работает, мой процесс на WaitForSingleObject ожидае выполнения строннего процесса. Но, у меня в приложении есть дополнительный поток TThread, который должен работать при работе стороннего процесса. А он не работает.
Вопрос.
Как правильно организовать вызов внешнего процесса, дождаться окончания его выполнения, но так, чтобы параллельные потоки моего приложения при этом работали?
← →
Сергей М. © (2006-06-23 11:40) [1]
> у меня в приложении есть дополнительный поток TThread, который
> должен работать при работе стороннего процесса. А он не
> работает
Значит у тебя ошибка в программе.
← →
Юрий Зотов © (2006-06-24 08:29) [2]> Как правильно организовать вызов внешнего процесса, дождаться
> окончания его выполнения, но так, чтобы параллельные потоки моего
> приложения при этом работали?
Так, как у Вас и сделано, только в отдельном потоке. WaitForSingleObject усыпляет только тот поток, из которого она была вызвана, а все остальные будут работать.
Поэтому в [1] написано верно - если другой поток у Вас тоже переходит в ожидание, значит, он получился как-то завязанным с первым.
← →
isasa © (2006-06-24 10:54) [3]А что, нельзя CreateProcess оформить в отдельном потоке, а не в главном?
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2006.08.06;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.013 c