Freigeben über


Context-Klasse

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

class Context;

Member

Geschützte Konstruktoren

Name

Beschreibung

Context::~Context-Destruktor

Öffentliche Methoden

Name

Beschreibung

Context::Block-Methode

Blockiert den aktuellen Kontext.

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 für den 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 für einen 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.

Hinweise

Der Concurrency Runtime-Planer (siehe Planer) verwendet Ausführungskontexte, um die von der Anwendung in die Warteschlange gestellten Arbeiten auszuführen. Ein Win32-Thread ist ein Beispiel für einen Ausführungskontext auf einem Windows-Betriebssystem.

Die Nebenläufigkeitsebene 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 kann jeweils auf einem virtuellen Prozessor ausgeführt werden.

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

Vererbungshierarchie

Context

Anforderungen

Header: concrt.h

Namespace: Parallelität

Siehe auch

Referenz

concurrency-Namespace

Scheduler-Klasse

Konzepte

Taskplaner (Concurrency Runtime)