|
하나의 도스 프로그램이 있는데, 이것을 파라미터를 조금씩 바꿔가며
여러번 수행시키려고 합니다.
일단, 쓰레드를 만들고 여기서 루프를 돌면서 WinExec()로 도스 프로그램을
계속 호출하게 만들었는데요...
WinExec()가 도스 프로그램을 호출하자마자 리턴을 해버리더군요.
그래서 도스창이 계속 만들어지고 쓰레드는 종료. 그리고 만들어진
도스창에서 도스 프로그램이 각각 실행되다가 알아서들 종료.
이런 식으로 되더군요.
그런데 루프 횟수가 아주 많아지니까 쓰레드가 (거의 동시에) 억수로
많이 만들어져서 시스템이 멈출락말락 하는 상태까지 갔다가
다시 돌아오네요. 이 때는 도스창이 아얘 뜨지 않는 경우도 있더군요.
아, 실행 자체는 정상적으로 됩니다.
저의 질문은, WinExec() 혹은 이와 유사한 다른 펑션이 다른 프로그램을
실행시킨 후 즉시 리턴하지 않고, 그 프로그램이 종료되면 리턴하게 하는
방법이 무엇인가 하는 것입니다.
도스 프로그램이 하나의 입력 파일을 오픈하는데, 위처럼 동시에 엄청
많은 쓰레드가 같은 파일을 오픈하는 것도 문제가 될 수도 있겠구요..
OS는 Win2000 Pro, 빌더 5 Pro이구요..
호출하고 싶은 프로그램은 위에서 밝힌 바와같이 단순 도스프로그램입니다.
|