Freigeben über


Concurrency-Namespace

Der Concurrency-Namespace stellt Klassen und Funktionen bereit, die Ihnen den Zugriff auf die Concurrency Runtime ermöglichen, ein Framework zur parallelen Programmierung für C++. Weitere Informationen finden Sie unter Concurrency Runtime.

namespace Concurrency;

Member

Typedefs

Name

Beschreibungen

runtime_object_identity

Jede Meldungsinstanz hat eine Identität, die ihr beim Klonen folgt und die zwischen Messagingkomponenten übergeben wird. Dies kann nicht die Adresse des Meldungsobjekts sein.

TaskProc

Eine elementare Abstraktion für eine Aufgabe, definiert als void (__cdecl * TaskProc)(void *). Ein TaskProc wird aufgerufen, um den Text einer Aufgabe aufzurufen.

Klassen

Name

Beschreibungen

agent-Klasse

Diese Klasse ist als Basisklasse für alle unabhängigen Agents vorgesehen. Wird verwendet, um den Zustand von anderen Agents auszublenden und über Meldungsübergabe zu interagieren.

bad_target-Klasse

Diese Klasse beschreibt eine Ausnahme, die immer dann ausgelöst wird, wenn einem Meldungsblock ein Zeiger auf ein Ziel zugeordnet wird, das für die auszuführende Operation ungültig ist.

call-Klasse

Ein call-Meldungsblock ist ein geordneter target_block mit mehreren Quellen, der eine bestimmte Funktion aufruft, wenn eine Nachricht empfangen wird.

choice-Klasse

Ein choice-Meldungsblock ist ein Block mit mehreren Quellen und einem einzelnen Ziel, der eine Befehlsflussinteraktion zwischen mehreren Quellen darstellt. Der Auswahlblock wartet, bis eine von mehreren Quellen eine Meldung erzeugt, und gibt den Index der Quelle weiter, die die Meldung erzeugt hat.

combinable-Klasse

Das combinable<T>-Objekt ist dazu gedacht, threadprivate Kopien von Daten bereitzustellen, mit denen sperrenfreie, threadlokale Unterberechnungen in parallelen Algorithmen durchgeführt werden können. Am Ende der Paralleloperation können die privaten Unterberechnungen im Thread in einem Endergebnis zusammengeführt werden. Diese Klasse kann statt einer freigegebenen Variable verwendet werden, und kann zu einer Leistungsverbesserung führen, wenn es andernfalls viel Konflikt mit dieser freigegebenen Variable geben würde.

concurrent_queue-Klasse

Die concurrent_queue-Klasse ist eine Sequenzcontainerklasse, die First In, First Out-Zugriff auf ihre Elemente zulässt. Aktiviert einen beschränkten Satz von parallelitätssicheren Operationen, z. B. push und try_pop.

concurrent_vector-Klasse

Die concurrent_vector-Klasse ist eine Sequenzcontainerklasse, die wahlfreien Zugriff auf beliebige Elemente zulässt. Aktiviert parallelitätssichere Operationen für Anfügen, Elementzugriff, Iteratorzugriff und Iteratordurchlauf.

Context-Klasse

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

context_self_unblock-Klasse

Diese Klasse beschreibt eine Ausnahme, die immer dann ausgelöst wird, wenn die Unblock-Methode für ein Context-Objekt aufgerufen wird, das im gleichen Kontext aufgerufen wird. Dies würde einen Versuch eines angegebenen Kontexts angeben, die eigene Blockierung aufzuheben.

context_unblock_unbalanced-Klasse

Diese Klasse beschreibt eine Ausnahme, die immer dann ausgelöst wird, wenn Aufrufe der Block-Methode und der Unblock-Methode eines Context-Objekts nicht ordnungsgemäß zugeordnet werden.

critical_section-Klasse

Ein nicht wiedereintretender Mutex, der explizit die Concurrency Runtime beachtet.

CurrentScheduler-Klasse

Stellt eine Abstraktion für den aktuellen dem aufrufenden Kontext zugeordneten Planer dar.

default_scheduler_exists-Klasse

Diese Klasse beschreibt eine Ausnahme, die immer dann ausgelöst wird, wenn die Scheduler::SetDefaultSchedulerPolicy-Methode aufgerufen wird, wenn ein Standardplaner bereits innerhalb des Prozesses vorhanden ist.

event-Klasse (Concurrency Runtime)

Ein manuelles Zurücksetzungsereignis, das explizit die Concurrency Runtime beachtet.

improper_lock-Klasse

Diese Klasse beschreibt eine Ausnahme, die immer dann ausgelöst wird, wenn eine Sperre nicht ordnungsgemäß abgerufen wird.

improper_scheduler_attach-Klasse

Diese Klasse beschreibt eine Ausnahme, die immer dann ausgelöst wird, wenn die Attach-Methode für ein Scheduler-Objekt aufgerufen wird, das bereits an den aktuellen Kontext angefügt wurde.

improper_scheduler_detach-Klasse

Diese Klasse beschreibt eine Ausnahme, die immer dann ausgelöst wird, wenn die CurrentScheduler::Detach-Methode für einen Kontext aufgerufen wird, der nicht über die Attach-Methode eines Scheduler-Objekts an einen Planer angefügt wurde.

improper_scheduler_reference-Klasse

Diese Klasse beschreibt eine Ausnahme, die immer dann ausgelöst wird, wenn die Reference-Methode für ein Scheduler-Objekt aufgerufen wird, das heruntergefahren wird, aus einem Kontext, der nicht Teil dieses Planers ist.

invalid_link_target-Klasse

Diese Klasse beschreibt eine Ausnahme, die immer dann ausgelöst wird, wenn die link_target-Methode eines Meldungsblocks aufgerufen wird und der Meldungsblock keine Verknüpfung mit dem Ziel erstellen kann. Dies ist möglicherweise das Ergebnis vom Überschreiten der Anzahl der zulässigen Links für den Meldungsblock oder von Versuchen, zweimal ein bestimmtes Ziel mit der gleichen Quelle zu verknüpfen.

invalid_multiple_scheduling-Klasse

Diese Klasse beschreibt eine Ausnahme, die ausgelöst wird, wenn ein task_handle-Objekt mehrmals über die run-Methode eines task_group-Objekts oder structured_task_group-Objekts ohne einen zwischenzeitlichen Aufruf der wait-Methode oder run_and_wait-Methode geplant wird.

invalid_operation-Klasse

Diese Klasse beschreibt eine Ausnahme, die ausgelöst wird, wenn eine ungültige Operation ausgeführt wird, die nicht genauer von einem anderen von der Concurrency Runtime ausgelösten Ausnahmetyp beschrieben wird.

invalid_oversubscribe_operation-Klasse

Diese Klasse beschreibt eine Ausnahme, die ausgelöst wird, wenn die Context::Oversubscribe-Methode mit dem auf false festgelegten _BeginOversubscription-Parameter ohne einen vorherigen Aufruf der Context::Oversubscribe-Methode mit dem auf true festgelegten _BeginOversubscription-Parameter aufgerufen wird.

invalid_scheduler_policy_key-Klasse

Diese Klasse beschreibt eine Ausnahme, die immer dann ausgelöst wird, wenn ein ungültiger oder unbekannter Schlüssel an einen SchedulerPolicy-Objektkonstruktor übergeben wird oder der SetPolicyValue-Methode eines SchedulerPolicy-Objekts ein Schlüssel übergeben wird, der über ein anderes Mittel geändert werden muss, z. B. die SetConcurrencyLimits-Methode.

invalid_scheduler_policy_thread_specification-Klasse

Diese Klasse beschreibt eine Ausnahme, die immer dann ausgelöst wird, wenn versucht wird, die Parallelitätsgrenzen eines SchedulerPolicy-Objekts so festzulegen, dass der Wert des MinConcurrency-Schlüssels kleiner als der Wert des MaxConcurrency-Schlüssels ist.

invalid_scheduler_policy_value-Klasse

Diese Klasse beschreibt eine Ausnahme, die immer dann ausgelöst wird, wenn ein Richtlinienschlüssel eines SchedulerPolicy-Objekts auf einen ungültigen Wert für diesen Schlüssel festgelegt wird.

ISource-Klasse

Die ISource-Klasse ist die Schnittstelle für alle Quellblöcke. Quellblöcke geben Meldungen an ITarget-Blöcke weiter.

ITarget-Klasse

Die ITarget-Klasse ist die Schnittstelle für alle Zielblöcke. Zielblöcke nehmen Meldungen auf, die von ISource-Blöcken angeboten werden.

join-Klasse

Ein join-Meldungsblock ist ein geordneter propagator_block mit mehreren Quellen und einem einzelnen Ziel, der Meldungen vom Typ _Type aus allen Quellen kombiniert.

message-Klasse

Der grundlegende Nachrichtenumschlag, der die Datennutzlast enthält, die zwischen Meldungsblöcken übergeben wird.

message_not_found-Klasse

Diese Klasse beschreibt eine Ausnahme, die immer dann ausgelöst wird, wenn ein Meldungsblock keine angeforderte Meldung finden kann.

message_processor-Klasse

Die message_processor-Klasse ist die abstrakte Basisklasse für die Verarbeitung von message-Objekten. Für die Reihenfolge der Meldungen besteht keine Garantie.

missing_wait-Klasse

Diese Klasse beschreibt eine Ausnahme, die immer dann ausgelöst wird, wenn es Aufgaben gibt, die noch für ein task_group-Objekt oder structured_task_group-Objekt geplant sind zur Zeit, da der Destruktor des Objekts ausgeführt wird. Diese Ausnahme wird nie ausgelöst, wenn der Destruktor aufgrund einer Stapelentladung als Ergebnis einer Ausnahme erreicht wird.

multi_link_registry-Klasse

Das multi_link_registry-Objekt ist eine network_link_registry, die mehrere Quellblöcke oder mehrere Zielblöcke verwaltet.

multitype_join-Klasse

Ein multitype_join-Meldungsblock ist ein Block mit mehreren Quellen und einem einzelnen Ziel, der Meldungen verschiedener Typ aus allen Quellen kombiniert und dem Ziel ein Tupel der kombinierten Meldungen bereitstellt.

nested_scheduler_missing_detach-Klasse

Diese Klasse beschreibt eine Ausnahme, die ausgelöst wird, wenn die Concurrency Runtime erkennt, dass Sie versäumt haben, die CurrentScheduler::Detach-Methode für einen Kontext aufzurufen, der über die Attach-Methode des Scheduler-Objekts an einen zweiten Planer angefügt wurde.

network_link_registry-Klasse

Die abstrakte network_link_registry-Basisklasse verwaltet die Links zwischen Quell- und Zielblöcken.

operation_timed_out-Klasse

Diese Klasse beschreibt eine Ausnahme, die ausgelöst wird, wenn das Timeout einer Operation erreicht wurde.

ordered_message_processor-Klasse

Ein ordered_message_processor ist ein message_processor, mit dem Meldungsblöcke Meldungen in der Reihenfolge verarbeiten können, in der sie empfangen wurden.

overwrite_buffer-Klasse

Ein overwrite_buffer-Meldungsblock ist ein geordneter propagator_block mit mehreren Zielen und mehreren Quellen, der jeweils eine einzelne Meldung speichern kann. Neue Meldungen überschreiben zuvor gespeicherte.

propagator_block-Klasse

Die propagator_block-Klasse ist eine abstrakte Basisklasse für Meldungsblöcke, die sowohl Quelle als auch Ziel sind. Kombiniert die Funktion der source_block-Klasse mit der Funktion der target_block-Klasse.

reader_writer_lock-Klasse

Eine im Writer festgelegte, warteschlangenbasierte Lese-/Schreibsperre mit ausschließlich lokalem Spinning. Die Sperre gewährt First In - First Out (FIFO)-Zugriff auf Writer und blockiert Reader unter einer fortlaufenden Last von Writern.

ScheduleGroup-Klasse

Stellt eine Abstraktion für eine Planungsgruppe dar. Planungsgruppen organisieren einen Satz verwandter Arbeitsaufgaben, die davon profitieren, zusammen geplant zu werden, entweder zeitlich durch das Ausführen einer anderen Aufgabe in der gleichen Gruppe vor dem Wechsel in eine andere Gruppe, oder räumlich durch das Ausführen von mehreren Elementen innerhalb der gleichen Gruppe auf dem gleichen NUMA-Knoten oder physischem Socket.

Scheduler-Klasse

Stellt für einen Concurrency Runtime-Planer eine Abstraktion dar.

scheduler_not_attached-Klasse

Diese Klasse beschreibt eine Ausnahme, die immer dann ausgelöst wird, wenn eine Operation ausgeführt wird, die erfordert, dass einen Planer an den aktuellen Kontext angefügt wird, und einer nicht.

scheduler_resource_allocation_error-Klasse

Diese Klasse beschreibt eine Ausnahme, die aufgrund eines Fehlers ausgelöst wird, um in der Concurrency Runtime eine wichtige Ressource abzurufen.

SchedulerPolicy-Klasse

Die SchedulerPolicy-Klasse enthält einen Satz von Schlüssel-Wert-Paaren, einen für jedes Richtlinienelement, das das Verhalten einer Planerinstanz steuert.

single_assignment-Klasse

Ein single_assignment-Meldungsblock ist ein geordneter propagator_block mit mehreren Zielen und mehreren Quellen, der eine einzelne, einmal beschreibbare message speichern kann.

single_link_registry-Klasse

Das single_link_registry-Objekt ist eine network_link_registry, die nur eine einzige Quelle oder einen einzigen Zielblock verwaltet.

source_block-Klasse

Die source_block-Klasse ist eine abstrakte Basisklasse ausschließlich für Quellblöcke. Die Klasse stellt grundlegende Linkmanagementfunktionalität sowie allgemeine Fehlerüberprüfungen bereit.

source_link_manager-Klasse

Das source_link_manager-Objekt verwaltet Meldungsblocknetzwerklinks zu ISource-Blöcken.

structured_task_group-Klasse

Die structured_task_group-Klasse stellt eine stark strukturierte Auflistung paralleler Arbeit dar. Sie können einzelne parallele Aufgaben mit task_handle-Objekten in die Warteschlange einer structured_task_group stellen und warten, bis sie abgeschlossen werden, oder die Aufgabengruppe abbrechen, bevor deren Ausführung beendet wird, wodurch alle Aufgaben abgebrochen werden, deren Ausführung nicht gestartet wurde.

target_block-Klasse

Die target_block-Klasse ist eine abstrakte Basisklasse, die grundlegende Linkmanagementfunktionalität und Fehlerüberprüfung für Nur-Ziel-Blöcke bereitstellt.

task_group-Klasse

Die task_group-Klasse stellt eine Auflistung der parallelen Arbeit dar, auf die gewartet werden kann oder die abgebrochen werden kann.

task_handle-Klasse

Die task_handle-Klasse stellt eine einzelne parallele Arbeitsaufgabe dar. Kapselt die Anweisungen und die Daten, die erforderlich sind, um ein Stück Arbeit auszuführen.

timer-Klasse

Ein timer-Meldungsblock ist ein source_block mit einem einzelnen Ziel, der nach Ablauf einer bestimmten Zeitspanne oder in bestimmten Intervallen eine Meldung an sein Ziel senden kann.

transformer-Klasse

Ein transformer-Meldungsblock ist ein geordneter propagator_block mit einem einzelnen Ziel und mehreren Quellen, der Meldungen eines Typs akzeptieren und eine unbegrenzte Anzahl von Meldungen eines anderen Typs speichern kann.

unbounded_buffer-Klasse

Ein unbounded_buffer-Meldungsblock ist ein geordneter propagator_block mit mehreren Zielen und mehreren Quellen, der eine unbegrenzte Anzahl von Meldungen speichern kann.

unsupported_os-Klasse

Diese Klasse beschreibt eine Ausnahme, die immer dann ausgelöst wird, wenn ein nicht unterstütztes Betriebssystem verwendet wird. Die Concurrency Runtime unterstützt keine Windows XP-Betriebssysteme vor Service Pack 3.

Strukturen

Name

Beschreibungen

DispatchState-Struktur

Die DispatchState-Struktur wird zur Zustandsübertragung auf die IExecutionContext::Dispatch-Methode verwendet. Beschreibt die Umstände, unter denen die Dispatch-Methode für eine IExecutionContext-Schnittstelle aufgerufen wird.

IExecutionContext-Struktur

Eine Schnittstelle zu einem Ausführungskontext, der auf einem angegebenen virtuellen Prozessor ausgeführt werden kann und einen gemeinsamen Kontextwechsel zulässt.

IExecutionResource-Struktur

Eine Abstraktion für einen Hardwarethread.

IResourceManager-Struktur

Eine Schnittstelle zum Ressourcen-Manager der Concurrency Runtime. Dies ist die Schnittstelle, durch die Planer mit dem Ressourcen-Manager kommunizieren.

IScheduler-Struktur

Eine Schnittstelle zu einer Abstraktion eines Arbeitsplaners. Der Ressourcen-Manager der Concurrency Runtime kommuniziert mit Arbeitsplanern mithilfe dieser Schnittstelle.

ISchedulerProxy-Struktur

Die Schnittstelle, über die Planer mit dem Ressourcen-Manager der Concurrency Runtime kommunizieren, um die Ressourcenzuordnung auszuhandeln.

IThreadProxy-Struktur

Eine Abstraktion für einen Thread der Ausführung. Abhängig vom SchedulerType-Richtlinienschlüssel des Planers, den Sie erstellen, gewährt der Ressourcen-Manager Ihnen einen Threadproxy, der von entweder von einem regulären Win32-Thread oder einem im Benutzermodus planbaren (UMS) Thread unterstützt wird. UMS-Threads werden unter 64-Bit-Betriebssystemen mit Version Windows 7 und höher unterstützt.

IUMSCompletionList-Struktur

Stellt eine UMS-Vervollständigungsliste dar. Wenn ein UMS-Thread blockiert wird, wird der festgelegte Planungskontext des Planers weitergeleitet, um eine Entscheidung zu treffen, was für den Stamm des zugrunde liegenden virtuellen Prozessors geplant werden soll, während der ursprüngliche Thread blockiert ist. Wenn die Blockierung des ursprüngliche Thread aufgehoben wird, stellt das Betriebssystem ihn in die Warteschlange für die Vervollständigungsliste, auf die durch diese Schnittstelle zugegriffen werden kann. Der Planer kann die Vervollständigungsliste für den festgelegten Planungskontext oder eine beliebige andere Stelle abfragen, in der es nach der Arbeit sucht.

IUMSScheduler-Struktur

Eine Schnittstelle zu einer Abstraktion eines Arbeitsplaners, der vom Ressourcen-Manager der Concurrency Runtime im Benutzermodus planbare Threads erwartet. Der Ressourcen-Manager verwendet diese Schnittstelle, um mit UMS-Threadplanern zu kommunizieren. Die IUMSScheduler-Schnittstelle erbt von der IScheduler-Schnittstelle.

IUMSThreadProxy-Struktur

Eine Abstraktion für einen Thread der Ausführung. Wenn dem Planer im Benutzermodus planbare (UMS) Threads gewährt werden sollen, legen Sie den Wert für das Planerrichtlinienelement SchedulerKind auf UmsThreadDefault fest, und implementieren Sie die IUMSScheduler-Schnittstelle. UMS-Threads werden nur unter 64-Bit-Betriebssystemen mit Version Windows 7 und höher unterstützt.

IUMSUnblockNotification-Struktur

Stellt eine Benachrichtigung vom Ressourcen-Manager darüber dar, dass ein Threadproxy, der blockiert hat und eine Rückkehr zum festgelegten Planungskontext des Planers ausgelöst hat, die Blockierung aufgehoben hat und bereit ist, geplant zu werden. Diese Schnittstelle ist ungültig, sobald der zugeordnete Ausführungskontext des Threadproxys, der von der GetContext-Methode zurückgegeben wurde, neu geplant wird.

IVirtualProcessorRoot-Struktur

Eine Abstraktion für einen Hardwarethread, auf dem ein Threadproxy ausgeführt werden kann.

Enumerationen

Name

Beschreibungen

agent_status-Enumeration

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

ConcRT_EventType-Enumeration

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

CriticalRegionType-Enumeration

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

DynamicProgressFeedbackType-Enumeration

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 virtuellen Prozessoren erfasst wurden, die in den und aus dem Leerlauf durch Anrufe der Activate-Methode und Deactivate-Methode für die IVirtualProcessorRoot-Schnittstelle wechseln. Weitere Informationen über verfügbare Planerrichtlinien finden Sie unter PolicyElementKey-Enumeration.

join_type-Enumeration

Der Typ eines join-Meldungsblocks.

Message_status-Enumeration

Die gültigen Antworten für ein Angebot eines message-Objekts für einen Block.

PolicyElementKey-Enumeration

Richtlinienschlüssel, die Aspekte des Planerverhaltens beschreiben. Jedes Richtlinienelement wird mit einem Schlüssel-Wert-Paar beschrieben. Weitere Informationen zu Planerrichtlinien und ihren Auswirkungen auf Planer finden Sie unter Taskplaner (Concurrency Runtime).

SchedulerType-Enumeration

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

SchedulingProtocolType-Enumeration

Wird von der SchedulingProtocol-Richtlinie verwendet, um zu beschreiben, welcher Planungsalgorithmus für den Planer verwendet wird. Weitere Informationen über verfügbare Planerrichtlinien finden Sie unter PolicyElementKey-Enumeration.

SwitchingProxyState-Enumeration

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

task_group_status-Enumeration

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

Funktionen

Name

Beschreibungen

asend-Funktion

Überladen. Ein asynchroner Sendevorgang, der eine Aufgabe plant, um die Daten an den Zielblock weiterzugeben.

make_choice-Funktion

Überladen. Erstellt einen choice-Meldungsblock aus einem optionalen Scheduler oder einer ScheduleGroup und zwei bis zehn Eingabequellen.

make_greedy_join-Funktion

Überladen. Erstellt einen greedy multitype_join-Meldungsblock aus einem optionalen Scheduler oder einer ScheduleGroup und zwei bis zehn Eingabequellen.

make_join-Funktion

Überladen. Erstellt einen non_greedy multitype_join-Meldungsblock aus einem optionalen Scheduler oder einer ScheduleGroup und zwei bis zehn Eingabequellen.

make_task-Funktion

Eine Factorymethode zum Erstellen eines task_handle-Objekts.

parallel_for-Funktion

Überladen. parallel_for durchläuft einen Bereich von Indizes und führt bei jeder Iteration parallel eine vom Benutzer bereitgestellte Funktion aus.

parallel_for_each-Funktion

parallel_for_each wendet eine angegebene Funktion parallel auf jedes Element innerhalb eines Bereichs an. Ist semantisch gleichwertig zur for_each-Funktion im std-Namespace, außer dass die Iteration über die Elemente parallel ausgeführt wird und die Reihenfolge der Iteration nicht angegeben ist. Das Argument _Func muss einen Funktionsaufrufoperator in der Form operator()(T) unterstützen, wobei der Parameter T der Elementtyp des Containers ist, der durchlaufen wird.

parallel_invoke-Funktion

Überladen. Führt die als Parameter angegebenen Funktionsobjekte parallel aus, und blockiert, bis die Ausführung beendet ist. Jedes Funktionsobjekt kann ein Lambda-Ausdruck, ein Zeiger auf eine Funktion oder ein anderes Objekt sein, das den Funktionsaufrufoperator mit der Signatur void operator()() unterstützt.

receive-Funktion

Überladen. Ein allgemeine Empfangsimplementierung, mit der ein Kontext auf Daten von genau einer Quelle warten und die akzeptierten Werte filtern kann.

send-Funktion

Überladen. Ein synchroner Sendevorgang, der wartet, bis das Ziel die Meldung akzeptiert oder ablehnt.

swap-Funktion

Tauscht die Elemente zweier concurrent_vector-Objekte.

try_receive-Funktion

Überladen. Ein allgemeine try-Empfangsimplementierung, mit der ein Kontext Daten von genau einer Quelle suchen und die akzeptierten Werte filtern kann. Wenn die Daten nicht bereit sind, gibt die Methode false zurück.

Operatoren

Name

Beschreibungen

operator!=-Operator (concurrent_vector)

Testet, ob das concurrent_vector-Objekt links vom Operator ungleich dem concurrent_vector-Objekt rechts vom Operator ist.

operator<-Operator (concurrent_vector)

Testet, ob das concurrent_vector-Objekt links vom Operator kleiner als das concurrent_vector-Objekt auf der rechten Seite ist.

operator<=-Operator (concurrent_vector)

Testet, ob das concurrent_vector-Objekt links vom Operator kleiner oder gleich dem concurrent_vector-Objekt auf der rechten Seite ist.

operator==-Operator (concurrent_vector)

Testet, ob das concurrent_vector-Objekt links vom Operator gleich dem concurrent_vector-Objekt rechts vom Operator ist.

operator>-Operator (concurrent_vector)

Testet, ob das concurrent_vector-Objekt links vom Operator größer als das concurrent_vector-Objekt auf der rechten Seite ist.

operator>=-Operator (concurrent_vector)

Testet, ob das concurrent_vector-Objekt links vom Operator größer oder gleich dem concurrent_vector-Objekt auf der rechten Seite ist.

Konstanten

Name

Beschreibungen

ChoreEventGuid-Konstante

Eine Kategorie-GUID, die ETW-Ereignisse beschreibt, die von der Concurrency Runtime ausgelöst werden und sich direkt auf Routinearbeiten oder Aufgaben beziehen.

ConcRT_ProviderGuid-Konstante

Der ETW-Anbieter GUID für die Concurrency Runtime.

CONCRT_RM_VERSION_1-Konstante

Gibt Unterstützung der Ressourcen-Manager-Schnittstelle an, die in Visual Studio 2010 definiert ist.

ConcRTEventGuid-Konstante

Eine Kategorie-GUID, die ETW-Ereignisse beschreibt, die von der Concurrency Runtime ausgelöst werden und nicht in eine der anderen Kategorien fallen.

ContextEventGuid-Konstante

Eine Kategorie-GUID, die ETW-Ereignisse beschreibt, die von der Concurrency Runtime ausgelöst werden und sich direkt auf Kontexte beziehen.

COOPERATIVE_TIMEOUT_INFINITE-Konstante

Wert, der angibt, dass ein Wartevorgang nie durch ein Timeout beendet werden soll.

COOPERATIVE_WAIT_TIMEOUT-Konstante

Wert, der angibt, dass ein Wartevorgang durch ein Timeout beendet wurde.

INHERIT_THREAD_PRIORITY-Konstante

Besonderer Wert für den Richtlinienschlüssel ContextPriority, der angibt, dass die Threadpriorität aller Kontexte im Planer dieselbe wie die des Threads sein soll, der den Planer erstellt hat.

LockEventGuid-Konstante

Eine Kategorie-GUID, die ETW-Ereignisse beschreibt, die von der Concurrency Runtime ausgelöst werden und sich direkt auf Sperren beziehen.

MaxExecutionResources-Konstante

Besonderer Wert für die Richtlinienschlüssel MinConcurrency und MaxConcurrency. Wird, falls keine anderen Einschränkungen vorliegen, standardmäßig auf die Anzahl von Hardwarethreads auf dem Computer festgelegt.

PPLParallelForeachEventGuid-Konstante

Eine Kategorie-GUID, die ETW-Ereignisse beschreibt, die von der Concurrency Runtime ausgelöst werden und sich direkt auf die Verwendung der parallel_for_each-Funktion beziehen.

PPLParallelForEventGuid-Konstante

Eine Kategorie-GUID, die ETW-Ereignisse beschreibt, die von der Concurrency Runtime ausgelöst werden und sich direkt auf die Verwendung der parallel_for-Funktion beziehen.

PPLParallelInvokeEventGuid-Konstante

Eine Kategorie-GUID, die ETW-Ereignisse beschreibt, die von der Concurrency Runtime ausgelöst werden und sich direkt auf die Verwendung der parallel_invoke-Funktion beziehen.

ResourceManagerEventGuid-Konstante

Eine Kategorie-GUID, die ETW-Ereignisse beschreibt, die von der Concurrency Runtime ausgelöst werden und sich direkt auf den Ressourcen-Manager beziehen.

ScheduleGroupEventGuid-Konstante

Eine Kategorie-GUID, die ETW-Ereignisse beschreibt, die von der Concurrency Runtime ausgelöst werden und sich direkt auf Planungsgruppen beziehen.

SchedulerEventGuid-Konstante

Eine Kategorie-GUID, die ETW-Ereignisse beschreibt, die von der Concurrency Runtime ausgelöst werden und sich direkt auf Planeraktivitäten beziehen.

VirtualProcessorEventGuid-Konstante

Eine Kategorie-GUID, die ETW-Ereignisse beschreibt, die von der Concurrency Runtime ausgelöst werden und sich direkt auf virtuelle Prozessoren beziehen.

Anforderungen

Header: agents.h, concrt.h, concrtrm.h, concurrent_queue.h, concurrent_vector.h, ppl.h

Siehe auch

Weitere Ressourcen

Referenz (Concurrency Runtime)