Freigeben über


IHostTask::SetPriority-Methode

Aktualisiert: November 2007

Fordert den Host auf, die Threadprioritätsebene der Aufgabe anzupassen, die durch die aktuelle IHostTask-Instanz dargestellt wird.

HRESULT SetPriority (
    [in] int newPriority
);

Parameter

  • newPriority
    [in] Eine Ganzzahl, die den angeforderten Threadprioritätswert für die Aufgabe darstellt, die von der aktuellen IHostTask-Instanz dargestellt wird.

Rückgabewert

HRESULT

Beschreibung

S_OK

SetPriority wurde erfolgreich zurückgegeben.

HOST_E_CLRNOTAVAILABLE

Die Common Language Runtime (CLR) wurde nicht in einen Prozess geladen oder befindet sich in einem Zustand, in dem sie weder verwalteten Code ausführen noch den Aufruf erfolgreich verarbeiten kann.

HOST_E_TIMEOUT

Das Zeitlimit für den Aufruf wurde überschritten.

HOST_E_NOT_OWNER

Der Aufrufer ist nicht Besitzer der Sperre.

HOST_E_ABANDONED

Ein Ereignis wurde abgebrochen, während ein blockierter Thread oder eine blockierte Fiber auf das Ereignis gewartet hat.

E_FAIL

Ein unbekannter, schwerwiegender Fehler ist aufgetreten. Wenn eine Methode E_FAIL zurückgibt, kann die CLR innerhalb des Prozesses nicht mehr verwendet werden. Nachfolgende Aufrufe von Hostmethoden geben HOST_E_CLRNOTAVAILABLE zurück.

Hinweise

Den Threads wird mithilfe eines Roundrobin-Systems, dem zum Teil die Prioritätsebene des Threads zugrunde liegt, eine Verarbeitungszeit gewährt. Mit SetPriority kann die Common Language Runtime (CLR) die Threadprioritätsebene für die aktuelle Aufgabe festlegen. Die folgenden newPriority-Werte werden unterstützt.

  • THREAD_PRIORITY_ABOVE_NORMAL

  • THREAD_PRIORITY_BELOW_NORMAL

  • THREAD_PRIORITY_HIGHEST

  • THREAD_PRIORITY_IDLE

  • THREAD_PRIORITY_LOWEST

  • THREAD_PRIORITY_NORMAL

  • THREAD_PRIORITY_TIME_CRITICAL

Die CLR ruft SetPriority auf, wenn der Wert von Thread.Priority durch den Benutzercode geändert wird. Ein Host kann einen eigenen Algorithmus für die Threadprioritätszuweisung definieren und kann diese Anforderung ignorieren.

Tipp

SetPriority meldet nicht, ob die Threadprioritätsebene geändert wurde. Durch Aufrufen von IHostTask::GetPriority kann der Wert für die Threadprioritätsebene der Aufgabe bestimmt werden.

Werte für die Threadprioritätsebene werden durch die Win32-SetThreadPriority-Funktion definiert. Weitere Informationen zur Threadpriorität finden Sie in der Dokumentation zur Windows-Plattform.

Anforderungen

Plattformen: siehe Systemanforderungen für .NET Framework.

Header: MSCorEE.idl

Bibliothek: als Ressource in MSCorEE.dll enthalten

.NET Framework-Versionen: 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

Siehe auch

Referenz

ICLRTask-Schnittstelle

ICLRTaskManager-Schnittstelle

IHostTask-Schnittstelle

IHostTask::GetPriority-Methode

IHostTaskManager-Schnittstelle

Thread