Freigeben über


Context-Klasse

Stellt eine Abstraktion für einen Ausführungskontext dar.

class Context;

Member

Öffentliche Methoden

Name

Beschreibungen

Context::Block-Methode

Blockiert den aktuellen Anforderungskontext.

Context::CurrentContext-Methode

Gibt einen Zeiger auf den aktuellen Kontext zurück.

Context::GetId-Methode

Gibt einen Bezeichner für den Kontext zurück, der innerhalb des Planers eindeutig ist, zu dem der Kontext gehört.

Context::GetScheduleGroupId-Methode

Gibt einen Bezeichner für die Planungsgruppe zurück, an der der Kontext gerade arbeitet.

Context::GetVirtualProcessorId-Methode

Gibt einen Bezeichner für den virtuellen Prozessor zurück, auf dem der Kontext gerade ausgeführt wird.

Context::Id-Methode

Gibt einen Bezeichner für den aktuellen Kontext zurück, der innerhalb des Planers eindeutig ist, zu dem der aktuelle Kontext gehört.

Context::IsCurrentTaskCollectionCanceling-Methode

Gibt zurück, ob die Aufgabenauflistung, die gerade inline auf dem aktuellen Kontext ausgeführt wird, in diesem Moment (oder in Kürze) einen Abbruch durchführt.

Context::IsSynchronouslyBlocked-Methode

Bestimmt, ob der Kontext synchron blockiert ist. Ein Kontext wird als synchron blockiert angesehen, wenn er explizit eine zu einer Blockierung führende Aktion ausgeführt hat.

Context::Oversubscribe-Methode

Fügt einen zusätzlichen virtuellen Prozessor für die Dauer eines Codeblocks in einen Planer ein, wenn er auf einem Kontext aufgerufen wird, der auf einem der virtuellen Prozessoren in diesem Planer ausgeführt wird.

Context::ScheduleGroupId-Methode

Gibt einen Bezeichner für die Planungsgruppe zurück, an der der aktuelle Kontext arbeitet.

Context::Unblock-Methode

Hebt die Blockierung des Kontexts auf und bewirkt, dass er ausführbar wird.

Context::VirtualProcessorId-Methode

Gibt einen Bezeichner für den virtuellen Prozessor zurück, auf dem der aktuelle Kontext ausgeführt wird.

Context::Yield-Methode

Setzt die Ausführung aus, damit ein anderer Kontext ausgeführt werden kann. Wenn kein anderer Kontext für eine Übergabe verfügbar ist, kann der Planer ggf. an einen anderen Betriebssystemthread übergeben.

Geschützte Operatoren

Name

Beschreibungen

Context::operator delete-Operator

Ein Context-Objekt wird intern von der Laufzeit zerstört. Explizites Löschen ist nicht möglich.

Hinweise

Der Concurrency Runtime-Planer (siehe Scheduler) verwendet Ausführungskontexte, um die von der Anwendung in die Warteschlange gestellten Arbeiten auszuführen. Ein Win32-Thread und ein im Benutzermodus planbarer (User Mode Schedulable, UMS) Thread sind Beispiele für Ausführungskontexte unter einem Windows-Betriebssystem. UMS-Threads werden nur unter 64-Bit-Betriebssystemen mit Version Windows 7 und höher unterstützt.

Die Parallelitätsebene eines Planers ist immer gleich der Anzahl virtueller Prozessoren, die vom Ressourcen-Manager gewährt wurden. Ein virtueller Prozessor ist eine Abstraktion für eine Verarbeitungsressource und wird einem Hardwarethread des zugrunde liegenden Systems zugeordnet. Nur ein einzelner Planerkontext darf jeweils auf einem virtuellen Prozessor ausgeführt werden.

Der Planer grundsätzlich kooperativ, und ein Ausführungskontext gibt seinen virtuellen Prozessor möglicherweise jederzeit für einen anderen Kontext frei, wenn er in einen Wartezustand wechseln möchte. Wenn der Wartevorgang erfüllt wurde, kann keine Fortsetzung erfolgen, bis ein verfügbarer virtueller Prozessor vom Planer mit der Ausführung beginnt.

Vererbungshierarchie

Kontext

Anforderungen

Header: concrt.h

Namespace: Concurrency

Siehe auch

Referenz

Concurrency-Namespace

Scheduler-Klasse

Konzepte

Taskplaner (Concurrency Runtime)