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.