尝试一个简单作业沙框失败

蒙飞鸿 2010-01-01 03:44:51
默认生成一个MFC对话框程序,在对话框初始化里加了
HANDLE m_hjob = CreateJobObject(NULL, TEXT("myjob"));
JOBOBJECT_BASIC_LIMIT_INFORMATION jobli = { 0 };
jobli.ActiveProcessLimit = 5;
SetInformationJobObject(m_hjob,JobObjectBasicLimitInformation,&jobli,sizeof(jobli));
这几句,m_hjob是成员变量。
然后用按钮执行:
void CcreatePDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
STARTUPINFO si;
memset(&si,0,sizeof(STARTUPINFO));
PROCESS_INFORMATION pi;
CreateProcess("c:\\windows\\system32\\calc.exe",NULL,NULL,NULL,NULL,CREATE_SUSPENDED,NULL,NULL,&si,&pi);
AssignProcessToJobObject(m_hjob,pi.hProcess);
ResumeThread(pi.hThread);


}
运行后点按钮能启动计算器程序。
对话框析构函数CcreatePDlg::~CcreatePDlg(void)
{
TerminateJobObject(m_hjob,9);
}
关闭对话框,计算器未退出,怎么回事?
...全文
72 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
幸福官 2010-01-01
[Quote=引用 5 楼 mengfeihong 的回复:]
不满意结贴,是不是分全贴主拿呢。。。论坛制度其实还不太懂,呵呵
[/Quote]
不是自己拿了,而是白扔了。
回复
蒙飞鸿 2010-01-01
不满意结贴,是不是分全贴主拿呢。。。论坛制度其实还不太懂,呵呵
回复
MoXiaoRab 2010-01-01
[Quote=引用 3 楼 mengfeihong 的回复:]
哦,原来是还要设置一个标志,才能启动进程数量的限制。。。分我自己拿了。。。
[/Quote]
啥叫“自己拿”?
回复
蒙飞鸿 2010-01-01
哦,原来是还要设置一个标志,才能启动进程数量的限制。。。分我自己拿了。。。
回复
MoXiaoRab 2010-01-01
[Quote=引用 1 楼 mengfeihong 的回复:]
哦,能退出计算器了,原来是在初始化函数里m_hjob被重新定义了。。。但限制打开进程为5的设置仍未成功。
[/Quote]
作业中的进程对象能创建五个以上的子进程?
回复
蒙飞鸿 2010-01-01
哦,能退出计算器了,原来是在初始化函数里m_hjob被重新定义了。。。但限制打开进程为5的设置仍未成功。
回复
相关推荐
发帖
进程/线程/DLL
创建于2007-09-28

1.5w+

社区成员

VC/MFC 进程/线程/DLL
申请成为版主
帖子事件
创建了帖子
2010-01-01 03:44
社区公告
暂无公告