concurrency-Namespace-Enumerationen

agent_status-Aufzählung

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

enum agent_status;

Werte

Name Beschreibung
agent_canceled Das agent wurde abgebrochen.
agent_created Das agent Wurde erstellt, aber nicht gestartet.
agent_done Der agent Vorgang wurde beendet, ohne abgebrochen zu werden.
agent_runnable Die agent Methode wurde gestartet, aber nicht eingegeben run .
agent_started Dies agent wurde gestartet.

Hinweise

Weitere Informationen finden Sie unter "Asynchrone Agents".

Anforderungen

Kopfzeile: concrt.h

Agents_EventType-Aufzählung

Die Typen von Ereignissen, die mit der von der Agents Library angebotenen Ablaufverfolgungsfunktionalität aufgezeichnet 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 Verknü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 Akt eines Kontexts darstellt, der leer wird.
CONCRT_EVENT_START Ein Ereignistyp, der den Anfang eines Start-/End-Ereignispaars kennzeichnet.
CONCRT_EVENT_UNBLOCK Ein Ereignistyp, der die Blockierung eines Kontexts darstellt.
CONCRT_EVENT_YIELD Ein Ereignistyp, der den Akt eines Kontexts darstellt, der zur Folge hat.

Anforderungen

Header: concrt.h Namespace: Parallelität

Concrt_TraceFlags-Aufzählung

Ablaufverfolgungskennzeichen für die Ereignistypen

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 Ressourcen-Manager, bis der Thread ausgeführt werden kann, und setzt ihn einfach fort, anstatt den Zeitplan erneut aufzugeben. Alle Sperren innerhalb einer solchen Region müssen mit äußerster Sorgfalt behandelt werden.
InsideHyperCriticalRegion Gibt an, dass sich der Kontext in einem hyperkritischen Bereich befindet. In einem hyperkritischen Bereich werden synchrone und asynchrone Anhalte vom Scheduler ausgeblendet. Sollte eine solche Aussetzung oder Blockierung auftreten, wartet der Ressourcenmanager, bis der Thread ausgeführt werden kann, und setzt ihn einfach fort, anstatt den Zeitplan erneut aufzugeben. Sperren innerhalb einer solchen Region dürfen niemals mit Code geteilt werden, der außerhalb einer solchen Region ausgeführt wird. Dies führt zu unvorhersehbaren Deadlocks.
OutsideCriticalRegion Gibt an, dass sich der Kontext außerhalb eines kritischen Bereichs befindet.

Anforderungen

Kopfzeile: concrtrm.h

DynamicProgressFeedbackType-Aufzählung

Wird von der DynamicProgressFeedback-Richtlinie verwendet, um zu beschreiben, ob Ressourcen für den Planer anhand statistischer Informationen neu verteilt werden, die vom Planer oder nur auf Grundlage virtueller Prozessoren erfasst wurden, die wegen der Aufrufe der Activate-Methode und der Deactivate-Methode für die IVirtualProcessorRoot-Schnittstelle in den und aus dem Leerlauf wechseln. 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 verwendet diese statistischen Informationen, um Ressourcen im Auftrag des Zeitplans zusätzlich zur Abonnementebene des zugrunde liegenden Hardwarethreads neu auszubalancieren. Weitere Informationen zu Abonnementebenen finden Sie unter "IExecutionResource::CurrentSubscriptionLevel".

join_type-Aufzählung

Der Typ eines join-Meldungsblocks.

enum join_type;

Werte

Name Beschreibung
greedy join Giernachrichtenblöcke akzeptieren sofort eine Nachricht bei der Weitergabe. Dies ist effizienter, hat aber je nach Netzwerkkonfiguration die Möglichkeit, live zu sperren.
non_greedy Nicht gierige join 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 das Angebot eines message-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 hat versucht, die Nachricht zu akzeptieren, aber es war nicht mehr verfügbar.
postponed Das Ziel hat die Nachricht verschoben.

Anforderungen

Header: agents.h

PolicyElementKey-Aufzählung

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 Priorität des Betriebssystemthreads für jeden Kontext im Scheduler. Wenn dieser Schlüssel auf den Wert INHERIT_THREAD_PRIORITY festgelegt ist, erben die Kontexte im Scheduler die Priorität des Threads, der den Scheduler erstellt hat.

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

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

Gültige Werte: Positive ganze Zahlen

Standardwert: 0, 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 DynamicProgressFeedbackType Aufzählung, entweder ProgressFeedbackEnabled oder ProgressFeedbackDisabled

Standardwert: ProgressFeedbackEnabled
LocalContextCacheSize Wenn der SchedulingProtocol Richtlinienschlüssel auf den Wert EnhanceScheduleGroupLocalityfestgelegt ist, gibt dies die maximale Anzahl ausgeführter Kontexte an, die pro lokalen Prozessorwarteschlangen 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 dazu führte, dass sie ausgeführt werden können. Beachten Sie, dass dieser Richtlinienschlüssel keine Bedeutung hat, wenn der SchedulingProtocol Schlüssel auf den Wert EnhanceForwardProgressfestgelegt ist.

Gültige Werte: Nicht negative ganze Zahlen

Standardwert: 8
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 angegebene MinConcurrency Wert größer als die Anzahl der Hardwarethreads auf dem Computer ist und MaxConcurrency als MaxExecutionResourcesangegeben wird, wird der Wert für MaxConcurrency den Wert ausgelöst, der angibt, für MinConcurrencywas festgelegt ist.

Gültige Werte: Positive ganze Zahlen und der Sonderwert MaxExecutionResources

Standardwert: MaxExecutionResources
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 angegebene MaxConcurrency Wert kleiner als die Anzahl der Hardwarethreads auf dem Computer ist und MinConcurrency als MaxExecutionResourcesangegeben wird, wird der Wert MinConcurrency für den Wert niedriger, um dem wert zu entsprechen, für MaxConcurrencyden festgelegt ist.

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

Standardwert: 1
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 SchedulerType Enumeration, z. B. ThreadScheduler

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

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

Standardwert: EnhanceScheduleGroupLocality
TargetOversubscriptionFactor Mit Vorbehalt anzahl virtueller Prozessoren pro Hardwarethread. Der Zielüberschreibungsfaktor kann bei Bedarf durch den Ressourcen-Manager erhöht werden, um die Hardwarethreads auf dem Computer zu erfüllen MaxConcurrency .

Gültige Werte: Positive ganze Zahlen

Standardwert: 1
WinRTInitialization

Anforderungen

Kopfzeile: concrt.h

SchedulerType-Aufzählung

Wird von der SchedulerKind-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 in der Parallelitäts-Runtime in Visual Studio 2013 nicht unterstützt. Das Verwenden von UmsThreadDefault als ein Wert für die SchedulerType-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 SchedulingProtocol-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 Zeitplaner bevorzugt das Roundrobin durch Zeitplangruppen, nachdem jeder Vorgang ausgeführt wurde. Nicht blockierte Kontexte werden in der Regel in einer FiFO-Art (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 zwischengespeichert und werden in der Regel von dem virtuellen Prozessor geplant, der sie entsperrt 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 kooperativ blockiert wird und ausschließlich dem Aufrufer gehört, bis er anschließend erneut ausgeführt wird und andere Aktionen ausführt.
Idle Gibt an, dass der aufrufende Thread vom Scheduler nicht mehr benötigt wird und an den Ressourcen-Manager zurückgegeben wird. Der Kontext, der verteilt wurde, kann vom Ressourcen-Manager nicht mehr verwendet 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 Typparameter SwitchingProxyState wird an die Methode IThreadProxy::SwitchTo übergeben, um den Ressourcen-Manager anzuweisen, wie der Threadproxy behandelt wird, der den Aufruf vornimmt.

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

task_group_status-Aufzählung

Beschreibt den Ausführungsstatus eines task_group-Objekts oder eines structured_task_group-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 task_group- oder structured_task_group-Objekt wurde abgebrochen. Eine oder mehrere Aufgaben wurden möglicherweise nicht ausgeführt.
completed Die für das task_group-Objekt oder das structured_task_group-Objekt in die Warteschlange gestellten Aufgaben wurden erfolgreich abgeschlossen.
not_complete Die für das task_group-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 WinRTInitialization-Richtlinie verwendet, um zu beschreiben, ob und wie die Windows Runtime auf Planerthreads für eine Anwendung initialisiert wird, die auf Windows-Betriebssystemen ab Version 8 ausgeführt wird. Weitere Informationen zu verfügbaren Zeitplanrichtlinien finden Sie unter PolicyElementKey.

enum WinRTInitializationType;

Werte

Name Beschreibung
DoNotInitializeWinRT Wenn die Anwendung auf Windows 8 oder neueren Betriebssystemen ausgeführt wird, initialisieren Threads innerhalb des Planers nicht Windows-Runtime.
InitializeWinRTAsMTA Wenn die Anwendung unter Windows 8 oder neueren Betriebssystemen ausgeführt wird, initialisiert jeder Thread innerhalb des Planers Windows-Runtime und deklariert, dass er Teil des Multithread-Apartments ist.

Anforderungen

Kopfzeile: concrt.h

Siehe auch

Concurrency-Namespace