Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations cowski on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

C++ Threads

Status
Not open for further replies.

Striker

Computer
Joined
May 23, 2001
Messages
143
Location
US
How can I pause the execution of a parent process until the child process is completed? My dilemna is I want to execute an external program via ShellExecute and have the calling process wait until it is done before proceeding. The external program is called using a list of files generated in a listbox control and if I do not wait until the ShellExecute command is completed, my system gets bogged down with multiple instances of the external program.
 
static STARTUPINFO si; static PROCESS_INFORMATION pi;

memset(&si,0,sizeof(si));
memset(&pi,0,sizeof(pi));
si.cb = sizeof(si);
si.wShowWindow=uCmdShow;

CreateProcess(
NULL, // pointer to name of executable module
lpCmdLine, // pointer to command line string
NULL, // pointer to process security attributes
NULL, // pointer to thread security attributes
FALSE, // handle inheritance flag
NULL, // creation flags
NULL, // pointer to new environment block
NULL, // pointer to current directory name
&si, // pointer to STARTUPINFO
&pi // pointer to PROCESS_INFORMATION
);

WaitForInputIdle(pi.hProcess, 6000);
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top