Freigeben über


concurrency-Namespace-Enumerationen

Die folgenden Enumerationen sind im Namespace verfügbar:

agent_status-Aufzählung

Die gültigen Zustände für einen .

enum agent_status;

Werte

Name Beschreibung
agent_canceled Das wurde abgebrochen.
agent_created Das ist erstellt worden, aber nicht gestartet.
agent_done Der Vorgang wurde beendet, ohne abgebrochen zu werden.
agent_runnable Die wurde gestartet, aber die -Methode wurde noch nicht aufgerufen.
agent_started Dies wurde gestartet.

Hinweise

Weitere Informationen finden Sie unter "Asynchrone Agents".

Anforderungen

Kopfzeile: concrt.h

Agents_EventType-Aufzählung

Arten von Ereignissen, die mit der von der Agents Library angebotenen Tracing-Funktion verfolgt werden können

enum Agents_EventType;

Werte

Name Beschreibung
AGENTS_EVENT_CREATE Ein Ereignistyp, der die Erstellung eines Objekts darstellt
AGENTS_EVENT_DESTROY Ein Ereignistyp, der das Löschen eines Objekts darstellt
AGENTS_EVENT_END Ein Ereignistyp, der den Abschluss einer Verarbeitung darstellt
AGENTS_EVENT_LINK Ein Ereignistyp, der die Verknüpfung von Nachrichtenblöcken darstellt
AGENTS_EVENT_NAME Ein Ereignistyp, der den Namen eines Objekts darstellt
AGENTS_EVENT_SCHEDULE Ein Ereignistyp, der die Planung eines Prozesses darstellt
AGENTS_EVENT_START Ein Ereignistyp, der die Initiierung einer Verarbeitung darstellt
AGENTS_EVENT_UNLINK Ein Ereignistyp, der die Entknüpfung von Nachrichtenblöcken darstellt

Anforderungen

Kopfzeile: concrt.h

ConcRT_EventType-Aufzählung

Die Typen von Ereignissen, die mit der von der Concurrency Runtime angebotenen Ablaufverfolgungsfunktionalität aufgezeichnet werden können.

enum ConcRT_EventType;

Werte

Name Beschreibung
CONCRT_EVENT_ATTACH Ein Ereignistyp, der den Akt einer Anfügung an einen Scheduler darstellt.
CONCRT_EVENT_BLOCK Ein Ereignistyp, der den Akt einer Kontextblockierung darstellt.
CONCRT_EVENT_DETACH Ein Ereignistyp, der den Akt einer Trennung von einem Planer darstellt.
CONCRT_EVENT_END Ein Ereignistyp, der den Anfang eines Start-/End-Ereignispaars kennzeichnet.
CONCRT_EVENT_GENERIC Ein Ereignistyp, der für verschiedene Ereignisse verwendet wird.
CONCRT_EVENT_IDLE Ein Ereignistyp, der den Vorgang eines Kontexts darstellt, der inaktiv wird.
CONCRT_EVENT_START Ein Ereignistyp, der den Anfang eines Start-/End-Ereignispaars kennzeichnet.
CONCRT_EVENT_UNBLOCK Ein Ereignistyp, der die Entblockung eines Kontexts darstellt.
CONCRT_EVENT_YIELD Ein Ereignistyp, der den Akt des Freigebens eines Kontexts darstellt.

Anforderungen

Header: concrt.h Namespace: Parallelität

Concrt_TraceFlags-Aufzählung

Spurkennzeichen für Typen von Ereignissen

enum Concrt_TraceFlags;

Werte

Name Beschreibung
AgentEventFlag
AllEventsFlag
ContextEventFlag
PPLEventFlag
ResourceManagerEventFlag
SchedulerEventFlag
VirtualProcessorEventFlag

Anforderungen

Kopfzeile: concrt.h

CriticalRegionType-Aufzählung

Der Typ eines kritischen Bereichs, in dem sich ein Kontext befindet.

enum CriticalRegionType;

Werte

Name Beschreibung
InsideCriticalRegion Gibt an, dass sich der Kontext innerhalb eines kritischen Bereichs befindet. In einem kritischen Bereich werden asynchrone Anhalte vom Scheduler ausgeblendet. Sollte eine solche Aussetzung auftreten, wartet der Resource Manager darauf, dass der Thread ausführbar wird, und setzt diesen einfach fort, statt den Scheduler erneut aufzurufen. Alle Sperren innerhalb einer solchen Region müssen mit äußerster Vorsicht vorgenommen werden.
InsideHyperCriticalRegion Gibt an, dass sich der Kontext in einem hyperkritischen Bereich befindet. In einem hyperkritischen Bereich sind synchrone und asynchrone Unterbrechungen für den Scheduler unsichtbar. Sollte eine solche Aussetzung oder Blockierung auftreten, wartet der Ressourcenmanager, bis der Thread ausführbar ist, und setzt ihn einfach fort, anstatt den Scheduler erneut aufzurufen. Sperren, die innerhalb einer solchen Region genommen werden, dürfen niemals mit Code geteilt werden, der außerhalb einer solchen Region ausgeführt wird. Dies wird unvorhersehbare Deadlocks verursachen.
OutsideCriticalRegion Gibt an, dass sich der Kontext außerhalb eines kritischen Bereichs befindet.

Anforderungen

Kopfzeile: concrtrm.h

DynamicProgressFeedbackType-Aufzählung

Wird von der -Richtlinie verwendet, um zu beschreiben, ob Ressourcen für den Planer anhand der statistischen Informationen, die vom Planer erfasst wurden, oder nur auf Grundlage der Zustände virtueller Prozessoren, die durch die Aufrufe der - und -Methoden auf der -Schnittstelle in den und aus dem Leerlauf wechseln, neu verteilt werden. Weitere Informationen zu verfügbaren Zeitplanrichtlinien finden Sie unter PolicyElementKey.

enum DynamicProgressFeedbackType;

Werte

Name Beschreibung
ProgressFeedbackDisabled Der Zeitplaner sammelt keine Statusinformationen. Die Rebalancing erfolgt ausschließlich auf der Abonnementebene des zugrunde liegenden Hardwarethreads. Weitere Informationen zu Abonnementebenen finden Sie unter "IExecutionResource::CurrentSubscriptionLevel".

Dieser Wert ist für die Verwendung durch die Laufzeit reserviert.
ProgressFeedbackEnabled Der Zeitplaner sammelt Statusinformationen und übergibt sie an den Ressourcen-Manager. Der Ressourcenmanager wird diese statistischen Informationen nutzen, um Ressourcen im Auftrag des Schedulers zusätzlich zur Abonnementstufe des zugrunde liegenden Hardware-Threads neu auszubalancieren. Weitere Informationen zu Abonnementebenen finden Sie unter "IExecutionResource::CurrentSubscriptionLevel".

join_type-Aufzählung

Der Typ eines -Meldungsblocks.

enum join_type;

Werte

Name Beschreibung
greedy Greedy-Nachrichtenblöcke akzeptieren sofort eine Nachricht durch die Weitergabe. Dies ist effizienter, hat aber je nach Netzwerkkonfiguration die Möglichkeit, live zu sperren.
non_greedy Nicht gierige Nachrichtenblöcke verschieben Nachrichten und versuchen, sie zu nutzen, nachdem alle angekommen sind. Diese sind garantiert funktionsfähig, aber langsamer.

Anforderungen

Header: agents.h

message_status-aufzählung

Die gültigen Antworten für eine Bereitstellung eines -Objekts für einen Block.

enum message_status;

Werte

Name Beschreibung
accepted Das Ziel hat die Nachricht akzeptiert.
declined Das Ziel hat die Nachricht nicht akzeptiert.
missed Das Ziel versuchte, die Nachricht anzunehmen, aber sie war nicht mehr verfügbar.
postponed Der Empfänger hat die Nachricht auf später verschoben.

Anforderungen

Header: agents.h

PolicyElementKey-Enumerierung

Richtlinienschlüssel, die Aspekte des Planerverhaltens beschreiben. Jedes Richtlinienelement wird mit einem Schlüssel-Wert-Paar beschrieben. Weitere Informationen zu Zeitplanrichtlinien und deren Auswirkungen auf Planer finden Sie unter "Task Scheduler".

enum PolicyElementKey;

Werte

Name Beschreibung
ContextPriority Die Betriebssystem-Thread-Priorität für jeden einzelnen Kontext im Scheduler. Wenn dieser Schlüssel auf den Wert festgelegt ist, erben die Kontexte im Scheduler die Priorität des Threads, der den Scheduler erstellt hat.

Gültige Werte: Eine der gültigen Werte für die Funktion Windows SetThreadPriority und den Sonderwert INHERIT_THREAD_PRIORITY

Standardwert:
ContextStackSize Die reservierte Stapelgröße jedes Kontexts im Scheduler in Kilobyte.

Gültige Werte: Positive ganze Zahlen

Standardwert: , der angibt, dass der Standardwert des Prozesses für die Stapelgröße verwendet werden soll.
DynamicProgressFeedback Bestimmt, ob die Ressourcen für den Planer entsprechend statistischen Informationen, die vom Planer gesammelt werden, oder nur basierend auf der Abonnementebene der zugrunde liegenden Hardwarethreads neu ausgeglichen werden. Weitere Informationen finden Sie unter DynamicProgressFeedbackType.

Gültige Werte: Ein Element der Aufzählung, entweder oder

Standardwert:
LocalContextCacheSize Wenn der Richtlinienschlüssel auf den Wert festgelegt ist, wird die maximale Anzahl ausführbarer Kontexte angegeben, die in lokalen Warteschlangen pro virtuellem Prozessor zwischengespeichert werden dürfen. Solche Kontexte werden in der Regel in der Reihenfolge Last-In-First-Out (LIFO) auf dem virtuellen Prozessor ausgeführt, der sie lauffähig gemacht hat. Beachten Sie, dass dieser Richtlinienschlüssel keine Bedeutung hat, wenn der Schlüssel auf den Wert festgelegt ist.

Gültige Werte: Nicht negative ganze Zahlen

Standardwert:
MaxConcurrency Die vom Scheduler gewünschte maximale Parallelitätsstufe. Der Ressourcenmanager versucht zunächst, diese vielen virtuellen Prozessoren zuzuweisen. Der Sonderwert MaxExecutionResources gibt an, dass die gewünschte Parallelitätsebene mit der Anzahl der Hardwarethreads auf dem Computer identisch ist. Wenn der Wert von größer ist als die Anzahl der Hardware-Threads auf der Maschine und als angegeben wird, wird der Wert für entsprechend dem, was für festgelegt ist, erhöht.

Gültige Werte: Positive ganze Zahlen und der Sonderwert

Standardwert:
MaxPolicyElementKey Der maximale Richtlinienelementschlüssel. Kein gültiger Elementschlüssel.
MinConcurrency Die minimale Parallelitätsebene, die vom Ressourcen-Manager für den Planer bereitgestellt werden muss. Die Anzahl der virtuellen Prozessoren, die einem Planer zugewiesen sind, geht nie unter das Minimum. Der Sonderwert MaxExecutionResources gibt an, dass die minimale Parallelitätsebene mit der Anzahl der Hardwarethreads auf dem Computer identisch ist. Wenn der für angegebene Wert kleiner als die Anzahl der Hardware-Threads auf dem Computer ist und als angegeben wird, wird der Wert für verringert, um dem Wert zu entsprechen, der für festgelegt ist.

Gültige Werte: Nicht negative ganze Zahlen und der Sonderwert . Beachten Sie, dass für Schedulerrichtlinien, die für die Erstellung von Concurrency Runtime-Schedulern verwendet werden, der Wert ungültig ist.

Standardwert:
SchedulerKind Der Typ von Threads, die der Scheduler für zugrunde liegende Ausführungskontexte verwendet. Weitere Informationen finden Sie unter SchedulerType.

Gültige Werte: Ein Element der Enumeration, z. B.

Standardwert: . Dies wird unter allen Betriebssystemen zu Win32-Threads übersetzt.
SchedulingProtocol Beschreibt, welcher Planungsalgorithmus vom Planer verwendet wird. Weitere Informationen finden Sie unter SchedulingProtocolType.

Gültige Werte: Ein Element der Aufzählung, entweder oder

Standardwert:
TargetOversubscriptionFactor Vorläufige Anzahl virtueller Prozessoren pro Hardwarethread. Der Zielüberschreitungsfaktor kann bei Bedarf von dem Ressourcenmanager erhöht werden, um MaxConcurrency mit den Hardware-Threads auf der Maschine zu erfüllen.

Gültige Werte: Positive ganze Zahlen

Standardwert:
WinRTInitialization

Anforderungen

Kopfzeile: concrt.h

SchedulerType-Aufzählung

Wird von der -Richtlinie verwendet, um den Typ der Threads zu beschreiben, die der Planer für zugrunde liegende Ausführungskontexte verwenden soll. Weitere Informationen zu verfügbaren Zeitplanrichtlinien finden Sie unter PolicyElementKey.

enum SchedulerType;

Werte

Name Beschreibung
ThreadScheduler Gibt eine explizite Anforderung von regulären Win32-Threads an.
UmsThreadDefault Schedulable-Threads (User-Mode schedulable, UMS) werden im Concurrency Runtime von Visual Studio 2013 nicht unterstützt. Das Verwenden von als ein Wert für die -Richtlinie führt zu keinem Fehler. Ein Planer, der mit dieser Richtlinie erstellt wurde, wird jedoch standardmäßig Win32-Threads verwenden.

Anforderungen

Kopfzeile: concrt.h

SchedulingProtocolType-Aufzählung

Wird von der -Richtlinie verwendet, um zu beschreiben, welcher Planungsalgorithmus für den Planer verwendet wird. Weitere Informationen zu verfügbaren Zeitplanrichtlinien finden Sie unter PolicyElementKey.

enum SchedulingProtocolType;

Werte

Name Beschreibung
EnhanceForwardProgress Der Scheduler bevorzugt das Rundlaufverfahren durch die Gruppen im Zeitplan, nachdem jede Aufgabe ausgeführt wurde. Nicht blockierte Kontexte werden in der Regel im FIFO-Verfahren (First In First Out) geplant. Virtuelle Prozessoren speichern keine nicht blockierten Kontexte zwischen.
EnhanceScheduleGroupLocality Der Zeitplaner bevorzugt, weiterhin an Vorgängen innerhalb der aktuellen Terminplangruppe zu arbeiten, bevor er zu einer anderen Terminplangruppe wechselt. Nicht blockierte Kontexte werden pro virtuellem Prozessor im Cache gespeichert und in der Regel nach dem LIFO-Prinzip von dem virtuellen Prozessor geplant, der sie entblockiert hat.

Anforderungen

Kopfzeile: concrt.h

SwitchingProxyState-Aufzählung

Wird verwendet, um den Zustand zu bezeichnen, in dem sich ein Threadproxy befindet, wenn er einen kooperativen Kontextwechsel zu einem anderen Threadproxy ausführt.

enum SwitchingProxyState;

Werte

Name Beschreibung
Blocking Gibt an, dass der aufrufende Thread im Rahmen einer kooperativen Blockierung ausschließlich vom Aufrufer kontrolliert werden sollte, bis der Thread erneut ausgeführt wird und weitere Aktionen durchführt.
Idle Gibt an, dass der aufrufende Thread vom Scheduler nicht mehr benötigt wird und an die Resource Manager zurückgegeben wird. Der übermittelte Kontext kann vom Resource Manager nicht mehr genutzt werden.
Nesting Gibt an, dass der aufrufende Thread einen untergeordneten Zeitplan verschachtelt und vom Aufrufer benötigt wird, um an einen anderen Zeitplan anzufügen.

Hinweise

Ein Parameter vom Typ SwitchingProxyState wird an die Methode IThreadProxy::SwitchTo übergeben, um den Resource Manager darüber zu informieren, wie der Threadproxy, der den Aufruf vornimmt, behandelt werden soll.

Weitere Informationen zur Verwendung dieses Typs finden Sie unter "IThreadProxy::SwitchTo".

task_group_status Aufzählung

Beschreibt den Ausführungsstatus eines -Objekts oder eines -Objekts. Ein Wert dieses Typs wird von zahlreichen Methoden zurückgegeben, die auf den Abschluss von Aufgaben warten, die für eine Aufgabengruppe geplant wurden.

enum task_group_status;

Werte

Name Beschreibung
canceled Das - oder -Objekt wurde abgebrochen. Eine oder mehrere Aufgaben wurden möglicherweise nicht ausgeführt.
completed Die für das -Objekt oder das -Objekt in die Warteschlange gestellten Aufgaben wurden erfolgreich abgeschlossen.
not_complete Die für das -Objekt in die Warteschlange gestellten Aufgaben wurden nicht abgeschlossen. Beachten Sie, dass dieser Wert gegenwärtig von der Concurrency Runtime nicht zurückgegeben wird.

Anforderungen

Kopfzeile: pplinterface.h

WinRTInitializationType-Aufzählung

Wird von der Richtlinie WinRTInitialization verwendet, um zu beschreiben, ob und wie die Windows-Runtime auf Scheduler-Threads für eine Anwendung initialisiert wird, die auf Betriebssystemen mit Version Windows 8 oder höher läuft. Weitere Informationen zu verfügbaren Zeitplanrichtlinien finden Sie unter PolicyElementKey.

enum WinRTInitializationType;

Werte

Name Beschreibung
DoNotInitializeWinRT Wenn die Anwendung auf Betriebssystemen mit Version Windows 8 oder höher ausgeführt wird, initialisieren Threads innerhalb des Schedulers die Windows-Runtime nicht.
InitializeWinRTAsMTA Wenn die Anwendung auf Betriebssystemen mit Version Windows 8 oder höher ausgeführt wird, initialisiert jeder Thread des Schedulers die Windows-Runtime und erklärt, dass er Teil des Multithreaded Apartment-Modells ist.

Anforderungen

Kopfzeile: concrt.h

Siehe auch

Concurrency-Namespace