eine Thread-Priorität in einem Service-Einstellung hat keine Auswirkung [geschlossen]
-
04-07-2019 - |
Frage
Gibt es eine weitere Konfiguration erforderlich, bevor ich Thread-Prioritäten in einem Windows-Dienst einstellen kann?
In meinem Dienst, ich habe ein paar Threads, die jeweils die CreateProcess()
Funktion aufrufen, eine externe Anwendung zu starten. Ich mag Thread (oder Prozess) Prioritäten anzupassen, um normal
oder lower
, abhängig von einigen anderen Faktoren ab.
Das Problem ist, dass SetThreadPriority()
Funktion mit einem Fehler 6 fehlschlägt (ungültiges Handle?). Ich bin in einem Griff aus PROCESS_INFORMATION::hThread
erhalten vorbei (nach dem CreateProcess()
natürlich Aufruf), so denke ich, dass der Griff sollte gültig sein.
Ich habe auch versucht, die Priorität Einstellung auf die Prozesse der SetPriorityClass()
-Funktion, die auch nicht.
Der Dienst wird als lokaler Benutzer angemeldet ist.
Lösung
Vielleicht haben Sie nicht die richtigen Zugriffsrechte? MSDN auf SetThreadPriority sagt:
hThread [in] ein Handle zu dem Gewinde dessen Prioritätswert eingestellt wird.
Der Griff muss die THREAD_SET_INFORMATION oder THREAD_SET_LIMITED_INFORMATION Zugang richtig. Weitere Informationen finden Sie Fädeln Sie Sicherheit und Zugriffsrechte.
Windows Server 2003 und Windows XP / 2000: Der Griff muss die THREAD_SET_INFORMATION Zugriffsrecht.