首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在C++中设置进程优先级

如何在C++中设置进程优先级
EN

Stack Overflow用户
提问于 2011-03-07 13:57:22
回答 2查看 28.8K关注 0票数 9

我正在编写一个对数据进行排序的程序,我需要将进程设置为优先级31,我认为这是Windows中最高的进程优先级。我做了一些研究,但不知道如何在C++中做到这一点。

EN

回答 2

Stack Overflow用户

发布于 2018-01-11 22:05:48

以下函数将完成此工作:

代码语言:javascript
复制
void SetProcessPriority(LPWSTR ProcessName, int Priority)
{
    PROCESSENTRY32 proc32;
    HANDLE hSnap;
    if (hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0));
    if (hSnap == INVALID_HANDLE_VALUE)
    {

    }
    else
    {
        proc32.dwSize = sizeof(PROCESSENTRY32);
        while ((Process32Next(hSnap, &proc32)) == TRUE)
        {
            if (_wcsicmp(proc32.szExeFile, ProcessName) == 0)
            {
                HANDLE h = OpenProcess(PROCESS_SET_INFORMATION, TRUE, proc32.th32ProcessID);
                SetPriorityClass(h, Priority);
                CloseHandle(h);
            }
        }
        CloseHandle(hSnap);
    }
}

例如,要将当前进程的优先级设置为低于正常,请使用:

代码语言:javascript
复制
SetProcessPriority(GetCurrentProcess(), BELOW_NORMAL_PRIORITY_CLASS)
票数 5
EN

Stack Overflow用户

发布于 2011-03-08 09:59:33

在SetPriorityClass之后(或之前),您必须设置单个线程的优先级,以获得最大可能的优先级。此外,实时优先级类还需要另一个安全令牌,因此请确保获取它(如果可以访问)。SetThreadPriority是SetPriorityClass之后的第二个接口。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5216347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档