서비스에서 스레드 우선 순위를 설정하면 효과가 없습니다 [닫는
-
04-07-2019 - |
문제
Windows 서비스에서 스레드 우선 순위를 설정하기 전에 추가 구성이 필요합니까?
내 서비스에는 각각 전화 할 스레드가 몇 개 있습니다. CreateProcess()
기능 외부 응용 프로그램을 시작합니다. 스레드 (또는 프로세스) 우선 순위를 조정하고 싶습니다. normal
또는 lower
, 다른 요인에 따라.
문제는 그 것입니다 SetThreadPriority()
오류 6 (유효하지 않은 핸들?)으로 기능이 실패합니다. 나는 얻은 손잡이를 통과합니다 PROCESS_INFORMATION::hThread
(전화 후 CreateProcess()
물론), 그래서 나는 손잡이가 ~해야 한다 유효합니다.
또한 SetPriorityClass()
기능도 실패합니다.
서비스는 로컬 사용자로 로그온합니다.
해결책
올바른 액세스 권한이 없습니까? SetThreadPriority에 MSDN 말 :
hthread [in] 우선 순위 값을 설정하는 스레드에 대한 핸들.
핸들에는 Thread_set_information 또는 Thread_set_limited_information에 액세스 할 수 있어야합니다. 자세한 내용은 스레드 보안 및 액세스 권한을 참조하십시오.
Windows Server 2003 및 Windows XP/2000 : 핸들에는 Thread_set_information에 액세스 할 수 있어야합니다.
제휴하지 않습니다 StackOverflow