2 Stimmen

Die Einstellung einer Thread-Priorität in einem Dienst hat keine Auswirkungen

Ist eine zusätzliche Konfiguration erforderlich, bevor ich Thread-Prioritäten in einem Windows-Dienst festlegen kann?

In meinem Dienst habe ich ein paar Threads, die jeweils die CreateProcess() Funktion zum Starten einer externen Anwendung. Ich möchte die Prioritäten der Threads (oder Prozesse) wie folgt anpassen normal o lower und hängt von einigen anderen Faktoren ab.

Das Problem ist, dass SetThreadPriority() Funktion schlägt mit einem Fehler 6 (ungültiges Handle?) fehl. Ich übergebe ein Handle, das ich von PROCESS_INFORMATION::hThread (nach dem Aufruf der CreateProcess() natürlich), so dass ich denke, dass der Griff debe gültig sein.

Ich habe auch versucht, die Priorität der Prozesse mit der Option SetPriorityClass() Funktion, die ebenfalls fehlschlägt.

Der Dienst ist als lokaler Benutzer angemeldet.

2voto

1800 INFORMATION Punkte 125009

Vielleicht haben Sie nicht die richtigen Zugriffsrechte? MSDN über SetThreadPriority sagt:

hThread [in] Ein Handle für den Thread dessen Prioritätswert gesetzt werden soll.

Der Griff muss die THREAD_SET_INFORMATION oder THREAD_SET_LIMITED_INFORMATION Zugriff Recht haben. Für weitere Informationen siehe Thread-Sicherheit und Zugriffsrechte.

Windows Server 2003 und Windows XP/2000: Das Handle muss die Bezeichnung THREAD_SET_INFORMATION Zugriffsrecht haben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X