我试图执行一个程序,并等待输出,但这是在一个线程下运行,但当 尝试等待与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