請問如何使用CreateThead 執行外部程式,並等其執行完成 |
尚未結案
|
ufjjc
一般會員 發表:18 回覆:47 積分:23 註冊:2002-05-21 發送簡訊給我 |
|
wameng
版主 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
|
ufjjc
一般會員 發表:18 回覆:47 積分:23 註冊:2002-05-21 發送簡訊給我 |
|
wameng
版主 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
改成 Thread 因該是不難。 在判斷部分挪到Thread.Execute 來處理。
procedure TWaitExecuteThread.Execute; begin ExitCode := FileExecuteWait(FileName,Params,StartDir,ProHandle,Visibility,false); if ProHandle<>0 then repeat Sleep(100); GetExitCodeProcess(ProHandle,ExitCode); until (ExitCode <> STILL_ACTIVE) or Terminated or Application.Terminated ; end; |
ufjjc
一般會員 發表:18 回覆:47 積分:23 註冊:2002-05-21 發送簡訊給我 |
|
chris_shieh
高階會員 發表:46 回覆:308 積分:240 註冊:2004-04-26 發送簡訊給我 |
一點小意見
ExitCode := FileExecuteWait(FileName,Params,StartDir,ProHandle,Visibility,false); if ProHandle<>0 then repeat Sleep(100); GetExitCodeProcess(ProHandle,ExitCode); until (ExitCode <> STILL_ACTIVE) or Terminated or Application.Terminated ;既然已經在FileExecuteWait 中等待程式結束 後面應該已經不需要再利用下面程式碼等待一次 這段程式碼應該直接放在FileExecuteWait 中就可以 repeat Sleep(100); GetExitCodeProcess(ProHandle,ExitCode); until (ExitCode <> STILL_ACTIVE) or Terminated or Application.Terminated ; |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |