全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1208
推到 Plurk!
推到 Facebook!

請問大家server的寫法

答題得分者是:allenchan
gavinj123
初階會員


發表:88
回覆:48
積分:27
註冊:2002-10-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-12-01 09:28:05 IP:218.32.xxx.xxx 未訂閱
WinExec(PCHAR('aa.BAT'),SW_HIDE); SLEEP(500); 我的server程式,當有client連上後,會用winexec()去執行批次檔(aa.bat), 因為我需要等這批次檔執行完所產生的檔案,所以我是用一個sleep(500), 目前看起來是沒問題, 但是我想,一個client連上等0.5秒,多個client時, 不就很慢, 請問大家的寫法?
allenchan
資深會員


發表:10
回覆:306
積分:283
註冊:2004-01-06

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-12-01 14:29:05 IP:203.70.xxx.xxx 未訂閱
引言: WinExec(PCHAR('aa.BAT'),SW_HIDE); SLEEP(500); 我的server程式,當有client連上後,會用winexec()去執行批次檔(aa.bat), 因為我需要等這批次檔執行完所產生的檔案,所以我是用一個sleep(500), 目前看起來是沒問題, 但是我想,一個client連上等0.5秒,多個client時, 不就很慢, 請問大家的寫法?
第一,您的程式可能改採 multi-thread 比較洽當。 第二,固定等待 0.5 sec 不是一個好做法,您可以試試下列程式:
bool RunAndWait(char *app_spawn, int nShowCmd)
{
    STARTUPINFO si;
    PROCESS_INFORMATION pi;        GetStartupInfo(&si);
    si.dwFlags = STARTF_USESHOWWINDOW;
    si.wShowWindow = nShowCmd;
    if (!CreateProcess(app_spawn, NULL, NULL, NULL, false, CREATE_NEW_CONSOLE, NULL, NULL, &si, &pi))
    {
        return false;
    }
    WaitForSingleObject(pi.hProcess, INFINITE);
    CloseHandle(pi.hProcess);
    CloseHandle(pi.hThread);
    return true;
}    /* 使用方式 */
RunAndWait("aa.BAT", SW_HIDE);    
發表人 - allenchan 於 2004/12/01 14:37:04
系統時間:2024-07-03 3:33:15
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!