首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

怎样结束子进程,该如何解决

2012-05-24 
怎样结束子进程大家好,我刚接触VC开发。遇到一个问题,如下:请大家给点建议。我做的是对话框程序,在按钮消息

怎样结束子进程
大家好,我刚接触VC开发。遇到一个问题,如下:请大家给点建议。

我做的是对话框程序,在按钮消息响应中创建线程,并开始执行处理。
void StartButtonClick()
{
HANDLE hThread = (HANDLE)_beginthreadex(NULL,0,CmdThread,NULL,0,NULL);
CloseHandle(hThread);
}

上面的线程函数CmdThread中,我通过匿名管道创建了cmd.exe进程,用此进程来执行批处理文件,
因为在执行过程中可能会多次按下按钮,多次执行后,发现有很多cmd.exe进程起来后没有清除。
我想问的事,怎么样处理能干净的清理这些没有的进程。(我的目的是当按钮按下时,去执行一个批处理,因为不要显示命令行
的窗口,所以我选择了创建cmd进程的匿名管道来实现,而没有用Winexec和system).
如果要达到这个目的,请问还有没有其他更好的方案。


[解决办法]
记录下创建的进程列表,退出时结束就可以了
[解决办法]
让线程自己return返回
[解决办法]
都有管道了,你往里面多写个exit\r\n不就能在最后退出cmd.exe了。

你用CreateProcess创建的进程,会有句柄的,用TerminateProcess也能强行关闭进程,不过最好不要这样做,而应该用上面的方法
[解决办法]
通知进程,让他自己exit(-1)

热点排行