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.

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top