Freigeben über


ICLRTask-Schnittstelle

Aktualisiert: November 2007

Stellt Methoden bereit, die es dem Host ermöglichen, die Common Language Runtime (CLR) anzufordern oder der CLR eine Benachrichtigung über die zugewiesene Aufgabe bereitzustellen.

interface ICLRTask : IUnknown {
    HRESULT Abort ();
    HRESULT ExitTask ();
    HRESULT GetMemStats (
        [out] COR_GC_THREAD_STATS *pMemUsage
    );
    HRESULT LocksHeld (
        [out] SIZE_T *pLockCount
    );
    HRESULT NeedsPriorityScheduling (
        [out] BOOL *pbNeedsPriorityScheduling
    );
    HRESULT Reset (
        [in] BOOL fFull
    );
    HRESULT RudeAbort ();
    HRESULT SetTaskIdentifier (
        [in] DWORD asked
    );
    HRESULT SwitchIn (
        [in] HANDLE threadHandle
    );
    HRESULT SwitchOut ();
    HRESULT YieldTask ();
}

Methoden

Methode

Beschreibung

ICLRTask::Abort-Methode

Fordert, dass die CLR die von der aktuellen ICLRTask-Instanz dargestellte Aufgabe abbricht.

ICLRTask::ExitTask-Methode

Benachrichtigt die CLR, dass die der aktuellen ICLRTask-Instanz zugeordnete Aufgabe beendet wird und versucht, die Aufgabe erfolgreich herunterzufahren.

ICLRTask::GetMemStats-Methode

Ruft statistische Informationen zu den von der Aufgabe verwendeten Speicherressourcen ab, wobei die Aufgabe von der aktuellen ICLRTask-Instanz dargestellt wird.

ICLRTask::LocksHeld-Methode

Ruft die Anzahl der Sperren ab, mit denen die Aufgabe zu diesem Zeitpunkt belegt ist.

ICLRTask::NeedsPriorityScheduling-Methode

Ruft einen Wert ab, der angibt, ob der Host eine hohe Priorität für die Neuplanung der durch die aktuelle ICLRTask-Instanz dargestellten Aufgabe zuweisen soll.

ICLRTask::Reset-Methode

Benachrichtigt die CLR, dass der Host eine Aufgabe abgeschlossen hat, und ermöglicht der CLR, die aktuelle ICLRTask-Instanz zur Darstellung einer weiteren Aufgabe zu verwenden.

ICLRTask::RudeAbort-Methode

Bewirkt, dass die CLR die durch die aktuelle ICLRTask-Instanz dargestellte Aufgabe abbricht, ohne die Garantie geben zu können, dass Finalizer ausgeführt werden.

ICLRTask::SetTaskIdentifier-Methode

Legt einen eindeutigen Bezeichner für die durch die aktuelle ICLRTask-Instanz dargestellte Aufgabe fest, der beim Debuggen verwendet wird.

ICLRTask::SwitchIn-Methode

Benachrichtigt die CLR, dass sich die durch die aktuelle ICLRTask-Instanz dargestellte Aufgabe im betriebsbereiten Zustand befindet.

ICLRTask::SwitchOut-Methode

Benachrichtigt die CLR, dass sich die durch die aktuelle ICLRTask-Instanz dargestellte Aufgabe nicht mehr im betriebsbereiten Zustand befindet.

ICLRTask::YieldTask-Methode

Fordert, dass die CLR CPU-Zeit für andere Aufgaben freigibt. Die CLR kann nicht garantieren, dass die Aufgabe in einen Zustand versetzt wird, in dem Verarbeitungszeit abgezogen werden kann.

Hinweise

Ein ICLRTask ist die Darstellung einer Aufgabe für die CLR. Zu jedem beliebigen Zeitpunkt der Codeausführung kann eine Aufgabe als aktiv oder als auf Ausführung wartend beschrieben werden. Der Host ruft die ICLRTask::SwitchIn-Methode auf, um die CLR zu benachrichtigen, dass die von der aktuellen ICLRTask-Instanz dargestellte Aufgabe jetzt funktionsfähig ist. Nach dem Aufrufen von ICLRTask::SwitchIn kann der Host die Aufgabe für jeden Betriebssystemthread einplanen, außer in Fällen, in denen die Laufzeit Threadaffinität erfordert, wie bei Aufrufen der IHostTaskManager::BeginThreadAffinity-Methode und IHostTaskManager::EndThreadAffinity-Methode angegeben. Das Betriebssystem kann nach einiger Zeit die Aufgabe aus dem Thread entfernen und sie in einen inaktiven Zustand versetzen. Dies kann zum Beispiel dann der Fall sein, wenn die Aufgabe Synchronisierungsprimitive sperrt oder darauf wartet, dass E/A-Vorgänge abgeschlossen werden. Der Host ruft SwitchOut auf, um die CLR zu benachrichtigen, dass die von der aktuellen ICLRTask-Instanz dargestellte Aufgabe nicht mehr funktionsfähig ist.

Eine Aufgabe wird normalerweise am Ende der Codeausführung beendet. Zu diesem Zeitpunkt ruft der Host ICLRTask::ExitTask auf, um den zugeordneten ICLRTask zu zerstören. Aufgaben können jedoch auch wiederverwendet werden, indem ICLRTask::Reset aufgerufen wird, wodurch die ICLRTask-Instanz erneut verwendet werden kann. Dadurch wird der Aufwand für wiederholtes Erstellen und Zerstören von Instanzen vermieden.

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

ICLRTaskManager-Schnittstelle

IHostTask-Schnittstelle

IHostTaskManager-Schnittstelle

Weitere Ressourcen

Hostingschnittstellen