ICLRTask-Schnittstelle

Stellt Methoden bereit, die es dem Host ermöglichen, Anforderungen an die Common Language Runtime (CLR) zu senden oder der CLR Benachrichtigungen zur zugewiesenen Aufgabe bereitzustellen.

Methoden

Methode BESCHREIBUNG
Abort-Methode Fordert an, dass die CLR die Aufgabe abbricht, die von der aktuellen ICLRTask-Instanz repräsentiert wird.
ExitTask-Methode Benachrichtigt die CLR, dass die mit der aktuellen ICLRTask-Instanz verknüpfte Aufgabe beendet wird, und versucht, die Aufgabe ordnungsgemäß zu beenden.
GetMemStats-Methode Ruft statistische Informationen zur Verwendung von Arbeitsspeicherressourcen durch die Aufgabe ab, die durch die aktuelle ICLRTask-Instanz repräsentiert wird.
LocksHeld-Methode Ruft die Anzahl von Sperren ab, die derzeit für die Aufgabe gelten.
NeedsPriorityScheduling-Methode Ruft einen Wert ab, der angibt, ob der Host eine hohe Priorität zuweisen soll, um die Aufgabe neu zu planen, die durch die aktuelle ICLRTask-Instanz repräsentiert wird.
Reset-Methode Informiert die CLR darüber, dass der Host eine Aufgabe abgeschlossen hat, und ermöglicht der CLR, die aktuelle ICLRTask-Instanz wiederzuverwenden, um eine andere Aufgabe zu repräsentieren.
RudeAbort-Methode Bewirkt, dass die CLR die Aufgabe abbricht, die durch die aktuelle ICLRTask-Instanz repräsentiert wird, ohne Garantie, dass Finalizer ausgeführt werden.
SetTaskIdentifier-Methode Legt zur Verwenden beim Debuggen einen eindeutigen Bezeichner für die Aufgabe fest, die durch die aktuelle ICLRTask-Instanz repräsentiert wird.
SwitchIn-Methode Benachrichtigt die CLR, dass sich die durch die aktuelle ICLRTask-Instanz repräsentierte Aufgabe in einem funktionsfähigen Zustand befindet.
SwitchOut-Methode Benachrichtigt die CLR, dass sich die durch die aktuelle ICLRTask-Instanz repräsentierte Aufgabe nicht mehr in einem funktionsfähigen Zustand befindet.
YieldTask-Methode Fordert an, dass die CLR Prozessorzeit für andere Aufgaben verfügbar macht. Die CLR garantiert nicht, dass die Aufgabe in einen Zustand versetzt wird, in dem sie Verarbeitungszeit erzielen kann.

Bemerkungen

Ein ICLRTask-Element ist die Repräsentation einer Aufgabe für die CLR. Eine Aufgabe kann an jedem Punkt der Codeausführung entweder als ausgeführt oder auf die Ausführung wartend beschrieben werden. Der Host ruft die Methode ICLRTask::SwitchIn auf, um die CLR zu benachrichtigen, dass die Aufgabe, die die aktuelle ICLRTask-Instanz repräsentiert, jetzt in einem funktionsfähigen Zustand ist. Nach einem Aufruf von ICLRTask::SwitchIn kann der Host die Aufgabe für einen beliebigen Betriebssystemthread planen, außer in Fällen, in denen die Runtime Threadaffinität erfordert, wie durch Aufrufe der Methoden IHostTaskManager::BeginThreadAffinity und IHostTaskManager::EndThreadAffinity angegeben. Einige Zeit später entscheidet das Betriebssystem möglicherweise, die Aufgabe aus dem Thread zu entfernen und in einen nicht ausgeführten Zustand zu versetzen. Dies kann z. B. passieren, wenn die Aufgabe bei Synchronisierungsprimitiven blockiert wird oder auf den Abschluss von E/A-Vorgängen wartet. Der Host ruft SwitchOut auf, um die CLR zu benachrichtigen, dass die durch die aktuelle ICLRTask-Instanz repräsentierte Aufgabe nicht mehr in einem funktionsfähigen Zustand ist.

Eine Aufgabe wird in der Regel am Ende der Codeausführung beendet. Zu diesem Zeitpunkt ruft der Host ICLRTask::ExitTask auf, um die zugeordnete ICLRTask zu zerstören. Aufgaben können jedoch auch mithilfe eines Aufrufs von ICLRTask::Reset wiederverwendet werden, sodass die ICLRTask-Instanz erneut verwendet werden kann. Durch diesen Ansatz wird verhindert, dass Instanzen immer wieder erstellt und zerstört werden.

Anforderungen

Plattformen: Informationen finden Sie unter Systemanforderungen.

Header: MSCorEE.h

Bibliothek: Als Ressource in „MsCorEE.dll“ enthalten.

.NET Framework-Versionen: Seit 2.0 verfügbar.

Siehe auch