Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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_PRIORITYStandardwert: |
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