在 Windows 服务中设置线程优先级之前是否需要一些额外的配置?
在我的服务中,我有几个线程,每个线程都调用CreateProcess()
启动外部应用程序的函数。我想调整线程(或进程)优先级normal
or lower
,取决于一些其他因素。
问题是SetThreadPriority()
函数失败并出现错误 6(无效句柄?)。我正在传递一个从以下位置获得的句柄PROCESS_INFORMATION::hThread
(调用后CreateProcess()
当然),所以我认为手柄should是有效的。
我还尝试使用设置进程的优先级SetPriorityClass()
函数,也失败了。
该服务以本地用户身份登录。
也许您没有正确的访问权限?MSDN 关于 SetThreadPriority says:
hThread [in] 线程句柄
要设置其优先级值。
手柄必须有
THREAD_SET_INFORMATION 或
THREAD_SET_LIMITED_INFORMATION 访问权限
正确的。有关更多信息,请参阅
线程安全和访问权限。
Windows Server 2003 和 Windows
XP/2000:手柄必须有
THREAD_SET_INFORMATION 访问权限。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)