我試圖執行一個程序,並等待輸出,但這是在一個線程下運行,但當 嘗試等待與CreateProcess()的'WaitForSingleObject'的輸出時崩潰的程序。線程Syn在C++
我也想將關閉時創建的線程的處理完成由創建進程的CreateProcess的「
class test{
public:
static void fun2(void * args){
/*...*/
if (!CreateProcess(NULL, Args, NULL, NULL, FALSE, CREATE_NO_WINDOW, NULL, NULL, &StartupInfo, &ProcessInfo)) {
return GetLastError();
}
WaitForSingleObject(ProcessInfo.hProcess, INFINITE);
ULONG rc;
if(!GetExitCodeProcess(ProcessInfo.hProcess, &rc)){
status = 0;
}
/*...*/
}
void fun1(){
/* ... */
HANDLE h = NULL;
h = CreateThread(NULL, 0,(LPTHREAD_START_ROUTINE)fun2,&data,0,0);
if(h!=NULL){
printf("OK\n");
}
/* ... */
}
};
int main(){
test t;
t.fun1();
return 0;
}
爲什麼不使用'std :: thread'和可用的同步機制? – 2017-07-01 18:43:16
我是新的線程,我會嘗試,謝謝。 – MrNuget