作业对象的限制不起作用?

lefttime 2010-05-10 08:59:09
我的初衷是想利用作业对象中基本信息限制来达到进程占用CPU时间的限制, 执行代码如下


......

TCHAR szCommandLine[] = TEXT("thread"); // thread程序是执行无限循环计算
STARTUPINFO si = { sizeof(si) };
PROCESS_INFORMATION pi;

HANDLE hJob = CreateJobObject(NULL, NULL);

JOBOBJECT_BASIC_LIMIT_INFORMATION jobli = { 0 };
jobli.PerProcessUserTimeLimit.QuadPart = 1000; // 限制时间定为1ms
jobli.LimitFlags = JOB_OBJECT_LIMIT_PROCESS_TIME;

SetInformationJobObject(hJob, JobObjectBasicLimitInformation, &jobli, sizeof(jobli));

BOOL bSuccess = CreateProcess( NULL,
szCommandLine,
NULL,
NULL,
FALSE,
CREATE_SUSPENDED,
NULL,
NULL,
&si,
&pi);

if(bSuccess)
{
AssignProcessToJobObject(hJob, pi.hProcess);
ResumeThread(pi.hThread);

CloseHandle(pi.hThread);

HANDLE h[2];
h[0] = pi.hProcess;
h[1] = hJob;
WaitForMultipleObjects(2, h, FALSE, INFINITE);

CloseHandle(pi.hProcess);
CloseHandle(hJob);
}

......


尽管正常运行,但得到的结果并不是我预期的...执行后的进程并未结束@@
为何出现这种情况, 请各位多多指教`~~`
...全文
77 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
lefttime 2010-05-12
  • 打赏
  • 举报
回复
再次提问~``

15,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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