我在一个进程A中调用另一个进程B,我想等B执行完后再执行A,怎么做?

lovesun 2002-05-23 05:51:12
???????????????????
...全文
106 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tipel 2002-05-23
  • 打赏
  • 举报
回复
进程A等待中
0A进程B执行完毕传回一个信号给进程A
进程A受到信号继续
使用进程间通信即可

========================
寒雨连江夜入吴
平明送客楚山孤
洛阳亲友如相问
一片冰心在玉壶
========================
叶飘扬
leafstream@163.com
========================
masterz 2002-05-23
  • 打赏
  • 举报
回复
PROCESS_INFORMATION pi;
STARTUPINFO si;
si.cb = sizeof(STARTUPINFO);
si.lpReserved = NULL;
si.lpDesktop = NULL;
si.lpTitle = NULL;
si.dwFlags = 0;
si.cbReserved2 = 0;
si.lpReserved2 = NULL;
BOOL bres = CreateProcess(NULL,"test a.txt b.txt",NULL,NULL,false,
NORMAL_PRIORITY_CLASS,
NULL,NULL,&si,&pi);
if(bres==false)
{
AfxMessageBox("CreateProcess failed");
}
else
{
CloseHandle(pi.hThread);
DWORD dwret=WaitForSingleObject(pi.hProcess, 1000*30);
switch(dwret)
{
case WAIT_OBJECT_0:
DWORD dwexitcode;
bres = GetExitCodeProcess(pi.hProcess,&dwexitcode);
TCHAR exitmsgbuf[1024];
if(bres)
{
wsprintf(exitmsgbuf,"exit code:%d",dwexitcode);
}
else
wsprintf(exitmsgbuf,"exit code failed to return");

AfxMessageBox(exitmsgbuf);
break;
default:
AfxMessageBox("exit for other reason");
}
CloseHandle(pi.hProcess);
}

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧