concurrency-Namespace
Der concurrency-Namespace stellt Klassen und Funktionen, die Zugriff auf die Concurrency Runtime ermöglichen, ein Framework zur parallelen Programmierung für C++.Weitere Informationen finden Sie unter Concurrency Runtime.
namespace concurrency;
Mitglieder
Typedefs
Name |
Description |
---|---|
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. |
task_status |
Ein Typ, der den Terminalzustand einer Aufgabe darstellt.Gültige Werte sind completed und canceled. |
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 |
Description |
---|---|
Die Klasse ist affinity_partitioner zur static_partitioner-Klasse ähnlich, allerdings verbessert Cacheaffinität durch seine Auswahl von subranges Zuordnung zu den Arbeitsthreads.Sie kann die Leistung, wenn eine Schleife über dem gleichen Dataset wieder-ausgeführt wird, und die Datenpassung im Cache erheblich verbessern.Beachten Sie, dass das gleiche affinity_partitioner-Objekt mit folgenden Iterationen einer parallelen Schleife verwendet werden muss, die zu einem bestimmten Dataset ausgeführt wird, um von Datenort zu profitieren. |
|
Diese Klasse ist als Basisklasse für alle unabhängigen Agents vorgesehen.Es wird verwendet, um Zustand von anderen Agents auszublenden und mithilfe der Meldungsübergabe zu interagieren. |
|
Die Klasse stellt auto_partitioner die Standardmethode parallel_for, parallel_for_each und parallel_transform verwendet, um den Bereich zu partitionieren dar, den sie von durchlaufen.Diese Methode der Partitionierung employes Bereich, der für Lastenausgleich stiehlt sowie pro-laufen Abbruch durch. |
|
Diese Klasse beschreibt eine ausgelöste Ausnahme, wenn ein Nachrichtenblock einen Zeiger auf ein Ziel angegeben ist, das für den Vorgang ungültig ist, der ausgeführt wird. |
|
Ein call-Meldungsblock ist ein geordneter target_block mit mehreren Quellen, der eine bestimmte Funktion aufruft, wenn eine Nachricht empfangen wird. |
|
Die Klasse stellt cancellation_token die Möglichkeit dar, um zu bestimmen, ob jeden Vorgang angefordert wurde, um abzubrechen. |
|
Die Klasse stellt eine cancellation_token_registration Rückrufbenachrichtigung von cancellation_token dar. |
|
Die Klasse stellt cancellation_token_source die Möglichkeit dar, einen Vorgang abzubrechen. |
|
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. |
|
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. |
|
Die concurrent_priority_queue-Klasse ist ein Container, der mehrere Threads gleichzeitig zu drücken und bringen Elemente zulässig.Elemente werden in Angriff geholt, in der Priorität von einem Funktionselement bestimmt wird, das als Vorlagenargument angegeben wird. |
|
Die concurrent_queue-Klasse ist eine Sequenzcontainerklasse, die First In, First Out-Zugriff auf ihre Elemente zulässt.Sie können einen eingeschränkten Satz sichere ausgeführt, wie push und try_pop. |
|
Die Klasse concurrent_unordered_map parallelitätssicher ist ein Container, der eine VARYINGLänge Sequenz von Elementen des Typs std::pair<const _Key_type, _Element_type> steuert.Die Sequenz wird so dargestellt, die parallelitätssichere Anfügevorgänge, Elementzugriff, Iteratorzugriff und Iteratordurchläufe aktiviert. |
|
Die Klasse concurrent_unordered_multimap parallelitätssicher ist ein Container, der eine VARYINGLänge Sequenz von Elementen des Typs std::pair<const _Key_type, _Element_type> steuert.Die Sequenz wird so dargestellt, die parallelitätssichere Anfügevorgänge, Elementzugriff, Iteratorzugriff und Iteratordurchläufe aktiviert. |
|
Die Klasse concurrent_unordered_multiset parallelitätssicher ist ein Container, der eine VARYINGLänge Sequenz von Elementen vom Typ _Key_type steuert.Die Sequenz wird so dargestellt, die parallelitätssichere Anfügevorgänge, Elementzugriff, Iteratorzugriff und Iteratordurchläufe aktiviert. |
|
Die Klasse concurrent_unordered_set parallelitätssicher ist ein Container, der eine VARYINGLänge Sequenz von Elementen vom Typ _Key_type steuert.Die Sequenz wird so dargestellt, die parallelitätssichere Anfügevorgänge, Elementzugriff, Iteratorzugriff und Iteratordurchläufe aktiviert. |
|
Die concurrent_vector-Klasse ist eine Sequenzcontainerklasse, die wahlfreien Zugriff auf beliebige Elemente zulässt.Sie ermöglicht parallelitätssichere Anfügen, Elementzugriff, Iteratorzugriff und Iteratordurchläufe. |
|
Stellt eine Abstraktion für einen Ausführungskontext dar. |
|
Diese Klasse beschreibt eine ausgelöste Ausnahme, wenn die Methode eines Objekts UnblockContext vom gleichen Kontext aufgerufen wird.Dies würde einen Versuch eines angegebenen Kontexts angeben, die eigene Blockierung aufzuheben. |
|
Diese Klasse beschreibt eine ausgelöste Ausnahme, wenn Aufrufe der Block und Unblock-Methoden eines Objekts Context nicht ordnungsgemäß zugeordnet werden. |
|
Ein nicht wiedereintretender Mutex, der explizit die Concurrency Runtime beachtet. |
|
Stellt eine Abstraktion für den aktuellen dem aufrufenden Kontext zugeordneten Planer dar. |
|
Diese Klasse beschreibt eine ausgelöste Ausnahme, wenn die Scheduler::SetDefaultSchedulerPolicy-Methode aufgerufen wird, wenn ein Standardplaner bereits innerhalb des Prozesses vorhanden ist. |
|
Ein manuelles Zurücksetzungsereignis, das explizit die Concurrency Runtime beachtet. |
|
Diese Klasse beschreibt eine ausgelöste Ausnahme, wenn eine Sperre nicht ordnungsgemäß abgerufen wird. |
|
Diese Klasse beschreibt eine ausgelöste Ausnahme, wenn die Attach-Methode für einen Scheduler-Objekt aufgerufen wird, das bereits im aktuellen Kontext angefügt wird. |
|
Diese Klasse beschreibt eine ausgelöste Ausnahme, wenn die CurrentScheduler::Detach-Methode in einem Kontext aufgerufen wird, der an keinen Planer angefügt wurde, der die AttachScheduler-Methode eines Objekts geändert wird. |
|
Diese Klasse beschreibt eine ausgelöste Ausnahme, wenn die Reference-Methode für ein Objekt, das Scheduler beendet wird, aus einem Kontext aufgerufen wird, der nicht Teil dieses Planers ist. |
|
Diese Klasse beschreibt eine ausgelöste Ausnahme, wenn die link_target-Methode eines Nachrichtenblocks aufgerufen und der Nachrichtenblock nicht möglich ist, zum Ziel zu verknüpfen.Dies kann das Ergebnis des Überschreitens der Anzahl von Links sein, die der Nachrichtenblock bietet oder Versuch ist, ein bestimmtes Ziel an dieselbe Quelle zweimal zu verknüpfen. |
|
Diese Klasse beschreibt eine ausgelöste Ausnahme, wenn ein task_handle-Objekt mehrmals mithilfe der Methode eines runtask_group oder structured_task_group-Objekts ohne einen zwischenzeitlichen Aufruf entweder zu den wait oder run_and_wait-Methoden geplant wird. |
|
Diese Klasse beschreibt eine ausgelöste Ausnahme, wenn ein ungültiger Vorgang ausgeführt wird, der nicht durch einen anderen Ausnahmetyp genauer beschrieben wird, der von der Concurrency Runtime ausgelöst wird. |
|
Diese Klasse beschreibt eine Ausnahme, die ausgelöst wird, wenn die Context::Oversubscribe-Methode mit dem _BeginOversubscription-Parameter aufgerufen wird, der zu false ohne einen früheren Aufruf der Methode Context::Oversubscribe mit dem _BeginOversubscription-Parameter festgelegt wird, der zu true festgelegt ist. |
|
Diese Klasse beschreibt eine ausgelöste Ausnahme, wenn eine ungültige oder unbekannten Schlüssel zu einem SchedulerPolicy-Objektkonstruktor übergeben wird, SetPolicyValue oder der Methode eines Objekts SchedulerPolicy ist ein Schlüssel übergeben, die mit anderen Mitteln wie der SetConcurrencyLimits-Methode geändert werden muss. |
|
Diese Klasse beschreibt eine ausgelöste Ausnahme, wenn versucht, die Parallelitätsgrenzen eines Objekts zu bewerten SchedulerPolicy so gemacht wird, dass der Wert der MinConcurrency Schlüssel kleiner als der Wert der MaxConcurrency Schlüssel ist. |
|
Diese Klasse beschreibt eine ausgelöste Ausnahme, wenn eine Richtlinientaste eines SchedulerPolicy-Objekts auf einen ungültigen Wert für diesen Schlüssel festgelegt ist. |
|
Die ISource-Klasse ist die Schnittstelle für alle Quellblöcke.Quellblöcke geben Meldungen an ITarget-Blöcke weiter. |
|
Die ITarget-Klasse ist die Schnittstelle für alle Zielblöcke.Zielblöcke nehmen Meldungen auf, die von ISource-Blöcken angeboten werden. |
|
Ein join-Meldungsblock ist ein geordneter propagator_block mit mehreren Quellen und einem einzelnen Ziel, der Meldungen vom Typ _Type aus allen Quellen kombiniert. |
|
Eine Abstraktion eines physischen Standorts auf Hardware. |
|
Der grundlegende Nachrichtenumschlag, der die Datennutzlast enthält, die zwischen Meldungsblöcken übergeben wird. |
|
Diese Klasse beschreibt eine Ausnahme, die ausgelöst wird, wenn ein Nachrichtenblock nicht möglich ist, eine angeforderte Meldung zu suchen. |
|
Die message_processor-Klasse ist die abstrakte Basisklasse für die Verarbeitung von message-Objekten.Für die Reihenfolge der Meldungen besteht keine Garantie. |
|
Diese Klasse beschreibt eine Ausnahme, die ausgelöst wird, wenn die Aufgaben gibt, die noch zu der Zeit zu einem task_group oder structured_task_group-Objekt geplant werden, das der Destruktor ausführt.Diese Ausnahme wird nicht ausgelöst, wenn der Destruktor aufgrund einer Stapelentladung als Ergebnis einer Ausnahme erreicht wird. |
|
Das multi_link_registry-Objekt ist eine network_link_registry, die mehrere Quellblöcke oder mehrere Zielblöcke verwaltet. |
|
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. |
|
Diese Klasse beschreibt eine ausgelöste Ausnahme, wenn die Concurrency Runtime feststellt, dass Sie abgelehnten, die CurrentScheduler::Detach-Methode in einem Kontext aufzurufen, der einem zweiten Planer angefügt haben, der die AttachScheduler-Methode des Objekts geändert wird. |
|
Die abstrakte network_link_registry-Basisklasse verwaltet die Links zwischen Quell- und Zielblöcken. |
|
Diese Klasse beschreibt eine ausgelöste Ausnahme, wenn ein Vorgang eingetreten ist. |
|
Ein ordered_message_processor ist ein message_processor, mit dem Meldungsblöcke Meldungen in der Reihenfolge verarbeiten können, in der sie empfangen wurden. |
|
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. |
|
Die Status-Reporter-Klasse ermöglicht Berichterstellungsstatusbenachrichtigungen eines bestimmten Typs.Jedes Objekt progress_reporter wird zu einer bestimmten asynchronen Aktion oder einem Vorgang gebunden. |
|
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. |
|
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. |
|
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. |
|
Stellt für einen Concurrency Runtime-Planer eine Abstraktion dar. |
|
Diese Klasse beschreibt eine ausgelöste Ausnahme, wenn ein Vorgang ausgeführt wird, der einen Planer dem aktuellen Kontext erfordert, angefügt werden und von nicht. |
|
Diese Klasse beschreibt eine Ausnahme, die aufgrund einer kann, eine wichtige Ressource in der Concurrency Runtime abzurufen ausgelöst wird. |
|
Diese Klasse beschreibt eine Ausnahme, die aufgrund einer kann, einen Workerausführungskontext in der Concurrency Runtime zu erstellen ausgelöst wird. |
|
Die SchedulerPolicy-Klasse enthält einen Satz von Schlüssel-Wert-Paaren, einen für jedes Richtlinienelement, das das Verhalten einer Planerinstanz steuert. |
|
Die simple_partitioner-Klasse wird eine statische Partitionierung des Bereichs dar, der durch parallel_for durchlaufen wird.Der Partitionierer unterteilt der Bereich in Blöcke unter so, dass jeder Block mindestens die Anzahl von Iterationen hat, die durch die Segmentgröße angegeben werden. |
|
Ein single_assignment-Meldungsblock ist ein geordneter propagator_block mit mehreren Zielen und mehreren Quellen, der eine einzelne, einmal beschreibbare message speichern kann. |
|
Das single_link_registry-Objekt ist eine network_link_registry, die nur eine einzige Quelle oder einen einzigen Zielblock verwaltet. |
|
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. |
|
Das source_link_manager-Objekt verwaltet Meldungsblocknetzwerklinks zu ISource-Blöcken. |
|
Die static_partitioner-Klasse wird eine statische Partitionierung des Bereichs dar, der durch parallel_for durchlaufen wird.Der Partitionierer unterteilt der Bereich in so Blöcke unter, da es die Worker gibt, die dem underyling Planer verfügbar sind. |
|
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. |
|
Die target_block-Klasse ist eine abstrakte Basisklasse, die grundlegende Linkmanagementfunktionalität und Fehlerüberprüfung für Nur-Ziel-Blöcke bereitstellt. |
|
Die Klasse Parallel Patterns Library (PPL) task.Ein Objekt stellt task Arbeit, die asynchron ausgeführt werden kann, und übereinstimmend mit anderen Aufgaben und Ähnlichkeitsarbeit dar, die von parallele Algorithmen in der Concurrency Runtime erzeugt werden.Er enthält ein Ergebnis vom Typ _ResultType auf erfolgreichem Abschluss.Aufgaben des Typs task<void> stellen kein Ergebnis.Eine Aufgabe kann auf verwaltet werden und unabhängig von anderen Aufgaben abgebrochen werden.Sie kann mit anderen Aufgaben mithilfe der Fortsetzungen (then) auch bestehen und Join (when_all) und auserlesene (when_any) Muster. |
|
Diese Klasse beschreibt eine Ausnahme, die durch die PPL-Aufgaben ausgelöst wird, überschreiben, um die aktuelle Aufgabe zu erzwingen abzubrechen.Sie wird auch von der get()-Methode auf Aufgabe, für eine abgebrochene Aufgabe ausgelöst. |
|
Die task_completion_event-Klasse ermöglicht es Ihnen, die Ausführung einer Aufgabe zu verzögern, bis eine Bedingung erfüllt ist, oder eine Aufgabe als Reaktion auf ein externes Ereignis zu starten. |
|
Die task_continuation_context-Klasse ermöglicht es Ihnen, um anzugeben, wo Sie möchten, dass eine Fortsetzung ausgeführt wird.Es ist nur sinnvoll, diese Klasse von einer Anwendung im Metro-Stil zu verwenden.Für NichtMetro Format-Apps wird der Ausführungskontext der Aufgabenfortsetzung von der Laufzeit bestimmt, und nicht konfiguriert werden. |
|
Die task_group-Klasse stellt eine Auflistung der parallelen Arbeit dar, auf die gewartet werden kann oder die abgebrochen werden kann. |
|
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. |
|
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. |
|
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. |
|
Ein unbounded_buffer-Meldungsblock ist ein geordneter propagator_block mit mehreren Zielen und mehreren Quellen, der eine unbegrenzte Anzahl von Meldungen speichern kann. |
|
Diese Klasse beschreibt eine ausgelöste Ausnahme, wenn ein ungestütztes Betriebssystem verwendet wird.Die Concurrency Runtime unterstützt keine Windows XP-Betriebssysteme vor Service Pack 3. |
Strukturen
Name |
Description |
---|---|
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. |
|
Eine Schnittstelle zu einem Ausführungskontext, der auf einem angegebenen virtuellen Prozessor ausgeführt werden kann und einen gemeinsamen Kontextwechsel zulässt. |
|
Eine Abstraktion für einen Hardwarethread. |
|
Eine Schnittstelle zum Ressourcen-Manager der Concurrency Runtime.Dies ist die Schnittstelle, durch die Planer mit dem Ressourcen-Manager kommunizieren. |
|
Eine Schnittstelle zu einer Abstraktion eines Arbeitsplaners.Der Ressourcen-Manager der Concurrency Runtime kommuniziert mit Arbeitsplanern mithilfe dieser Schnittstelle. |
|
Die Schnittstelle, über die Planer mit dem Ressourcen-Manager der Concurrency Runtime kommunizieren, um die Ressourcenzuordnung auszuhandeln. |
|
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. |
|
Eine Schnittstelle zu einer Ausführungsressource, wie vom Ressourcen-Manager definiert. |
|
Eine Schnittstelle für einen Topologieknoten, wie vom Ressourcen-Manager definiert.Ein Knoten enthält eine oder mehrere Ausführungsressourcen. |
|
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. |
|
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. |
|
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. |
|
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. |
|
Eine Abstraktion für einen Hardwarethread, auf dem ein Threadproxy ausgeführt werden kann. |
Enumerationen
Name |
Description |
---|---|
Die gültigen Zustände für einen agent. |
|
Die Ereignistypen, die mithilfe der Ablaufverfolgungsfunktionalität aufgezeichnet werden können, boten von der Agents Library an |
|
Die Typen von Ereignissen, die mit der Ablaufverfolgungsfunktionalität aufgezeichnet werden können, die von der Concurrency Runtime angeboten wird. |
|
Ablaufverfolgungsflags für die Ereignistypen |
|
Der Typ eines kritischen Bereichs, in dem sich ein Kontext befindet. |
|
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. |
|
Der Typ eines join-Meldungsblocks. |
|
Die gültigen Antworten für ein Angebot eines message-Objekts für einen Block. |
|
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). |
|
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. |
|
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. |
|
Wird verwendet, um den Zustand zu bezeichnen, in dem ein Threadproxy ist, wenn er einen kooperativen Kontextwechsel zu einem anderen Threadproxy ausführt. |
|
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. |
|
Wird von der WinRTInitialization Richtlinie um zu beschreiben, ob und wie die Windows Runtime auf Planerthreads für eine Anwendung initialisiert wird, die auf Betriebssystemen Windows mit Version 8 oder höher ausgeführt wird.Weitere Informationen über verfügbare Planerrichtlinien finden Sie unter PolicyElementKey-Enumeration. |
Funktionen
Name |
Description |
---|---|
Ordnet einen Speicherblock der Größe, auf die von der Concurrency Runtime-Zwischenspeichern-Unterbelegungsfunktion angegeben wird. |
|
Überladen.Ein asynchroner Sendevorgang, der eine Aufgabe plant, um die Daten an den Zielblock weiterzugeben. |
|
Bricht die gerade ausgeführte Aufgabe ab.Diese Funktion kann aus dem Text einer Aufgabe aufgerufen werden, die Ausführung der Aufgabe abzubrechen und dass dabei, den canceled Zustand übergeht.Dabei kann als Reaktion auf die is_task_cancellation_requested-Funktion verwendet wird, können Sie sie auch mit sich selbst, um den Abbruch der Aufgabe zu initiieren, die derzeit ausgeführt wird. Es ist kein unterstütztes Szenario, um diese Funktion aufzurufen, wenn Sie nicht innerhalb von Text aus task sind.Dies würde zu nicht definiertes Verhalten wie einen Absturz oder einen Fall in der Anwendung. |
|
Erstellt ein asynchrones Konstrukt der Windows Runtime auf einem Benutzer angegebenes Lambda oder ein Funktionsobjekt.Der Rückgabetyp von create_async ist entweder von einer IAsyncAction^, von IAsyncActionWithProgress<TProgress>^, von IAsyncOperation<TResult>^ oder von IAsyncOperationWithProgress<TResult, TProgress>^ auf Grundlage der Signatur des Lambda-Ausdrucks, das an die Methode übergeben wird. |
|
Überladen.Erstellt ein Objekt Aufgabe PPL.kann verwendet werden create_task überall Sie würde verwendet haben einen Aufgabenkonstruktor.Es wird hauptsächlich für halber bereitgestellt, da es Verwendung des auto-Schlüsselwort ermöglicht, beim Erstellen einer anzuzeigenden Aufgaben. |
|
Gibt eine Schnittstelle zurück, die die Singletoninstanz des Ressourcen-Managers der Concurrency Runtime darstellt.Der Ressourcen-Manager ist für das Zuweisen von Ressourcen für Planer, die miteinander kooperieren möchten, zuständig. |
|
Deaktiviert die Ablaufverfolgung in der Concurrency Runtime.Diese Funktion ist veraltet, da ETW-Ablaufverfolgung standardmäßig Registrierung aufgehoben wird. |
|
Aktiviert die Ablaufverfolgung in der Concurrency Runtime.Diese Funktion ist veraltet, da ETW-Ablaufverfolgung jetzt standardmäßig aktiviert ist. |
|
Gibt einen Speicherblock frei, der zuvor durch die Alloc-Methode zur Concurrency Runtime-Zwischenspeichern-Unterbelegungsfunktion zugeordnet ist. |
|
Gibt einen eindeutigen Bezeichner zurück, der einem Ausführungskontext zugewiesen werden kann, der die IExecutionContext-Schnittstelle implementiert. |
|
Gibt die Betriebssystemversion zurück. |
|
Gibt die Anzahl der Hardwarethreads des zugrunde liegenden Systems zurück. |
|
Gibt die Anzahl von NUMA-Knoten oder Prozessorpaketen auf dem zugrunde liegenden System zurück. |
|
Gibt einen eindeutigen Bezeichner zurück, der einem Planer zugewiesen werden kann, der die IScheduler-Schnittstelle implementiert. |
|
Erstellt einen Unterbrechungspunkt Abbruchunterstützung.Wenn ein Abbruch im Kontext ausgeführt wird, in dem diese Funktion aufgerufen wird, löst diese eine interne Ausnahme aus, die die Ausführung der aktuell ausgeführten parallelen Verarbeitung abgebrochen.Wenn der Abbruch nicht ausgeführt wird, führt die Funktion nichts. |
|
Gibt zurück, ob die Aufgabengruppe, die gerade inline auf dem aktuellen Kontext ausgeführt wird, in diesem Moment (oder in Kürze) einen Abbruch durchführt.Beachten Sie, dass false zurückgegeben wird, wenn auf dem aktuellen Kontext zurzeit inline keine Aufgabengruppe ausgeführt wird. |
|
Gibt ein Hinweis zurück, ob die Aufgabe, die gerade ausgeführt wird, eine Anforderung empfangen hat, dessen Ausführung abzubrechen.Abbruch wird auf einer Aufgabe angefordert, wenn die Aufgabe mit einem Abbruchtoken erstellt wurde, und die Tokenquelle, die diesem Token zugeordnet ist, wird abgebrochen. |
|
Überladen.Erstellt einen choice-Meldungsblock aus einem optionalen Scheduler oder einer ScheduleGroup und zwei bis zehn Eingabequellen. |
|
Überladen.Erstellt einen greedy multitype_join-Meldungsblock aus einem optionalen Scheduler oder einer ScheduleGroup und zwei bis zehn Eingabequellen. |
|
Überladen.Erstellt einen non_greedy multitype_join-Meldungsblock aus einem optionalen Scheduler oder einer ScheduleGroup und zwei bis zehn Eingabequellen. |
|
Eine Factorymethode zum Erstellen eines task_handle-Objekts. |
|
Überladen.Ordnet die Elemente in einem angegebenen Bereich in eine nondescending Reihenfolge oder gemäß einem Sortierkriterium an, das durch ein binäres Prädikat, parallel angegeben wird.Diese Funktion ist semantisch zu std::sort darin, dass sie ein verglichene-basiertes ist, instabil, direkte Sortierung vergleichbar, außer dass sie erfordert zusätzliche Leerzeichen O(n) und erfordert Standardinitialisierung für Elemente, die sortiert werden. |
|
Überladen.parallel_for durchläuft einen Bereich von Indizes und führt bei jeder Iteration parallel eine vom Benutzer bereitgestellte Funktion aus. |
|
Überladen.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. |
|
Ü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. |
|
Überladen.Ordnet Elemente in einem angegebenen Bereich in eine absteigende Reihenfolge nicht mit einem BasisSortieralgorithmus an.Dies ist eine stabile fügen, die eine Projektionsfunktion erfordert, die Elemente werden kann, in Zahl ähnliche Schlüsseln sortiert werden ohne Vorzeichen.Standardinitialisierung ist für die Elemente erforderlich, die sortiert werden. |
|
Überladen.Berechnet die Summe aller Elemente in einem angegebenen Bereich, indem das Ableiten von aufeinander folgenden partiellen Summen, oder berechnet das Ergebnis der aufeinander folgenden partiellen Ergebnisse abgerufenen auf ähnliche Weise von der Anwendung einer angegebenen binären Operation als Summe, parallel.parallel_reduce ist semantisch zu std::accumulate vergleichbar, außer dass erfordert die binäre Operation, vereinigend sein und erfordert einen Identitätswert anstelle eines Anfangswerts. |
|
Überladen.Ordnet die Elemente in einem angegebenen Bereich in eine nondescending Reihenfolge oder gemäß einem Sortierkriterium an, das durch ein binäres Prädikat, parallel angegeben wird.Diese Funktion ist semantisch zu std::sort insofern ähnlich, dass eine verglichene-basierte, instabile, direkte Sortierung ist. |
|
Überladen.Wendet einen angegebenen Funktionsobjekt an jedes Element in einem Quellbereich oder einem Paar von Elementen aus zwei Quellbereichen und kopiert die Rückgabewerte des Funktionsobjekts in einen Zielbereich, parallel.Dieses funktionale ist zu std::transform semantisch gleichwertig. |
|
Überladen.Ein allgemeine Empfangsimplementierung, mit der ein Kontext auf Daten von genau einer Quelle warten und die akzeptierten Werte filtern kann. |
|
Führt ein Funktionsobjekt sofort und synchron im Kontext eines angegebenen Abbruchtoken aus. |
|
Überladen.Ein synchroner Sendevorgang, der wartet, bis das Ziel die Meldung akzeptiert oder ablehnt. |
|
Überladen.Schränkt die Ausführungsressourcen ein, die durch die internen Arbeitsthreads der Concurrency Runtime zur Affinität festgelegt angegeben verwendet werden. Sie ist gültig, diese Methode nur vor Ressourcen-Manager erstellt wurde, oder zwischen zwei Ressourcen-Manager-Lebensdauern aufzurufen.Sie kann mehrmals aufgerufen werden, solange der Ressourcen-Manager nicht zum Zeitpunkt des Aufrufs vorhanden ist.Nachdem eine Affinitätsgrenze eingerichtet wurde, bleibt sie bestehen bis zum nächsten gültigen Aufruf der Methode set_task_execution_resources. Die Affinitätsmaske hat, muss keine Teilmenge der Prozessaffinitätsmaske konfiguriert wird.Die Prozessaffinität wird ggf. aktualisiert. |
|
Tauscht die Elemente zweier concurrent_vector-Objekte. |
|
Ordnet den angegebenen Namen an den Nachrichtenblock oder dem Agent in der ETW-Ablaufverfolgung zu. |
|
Ü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. |
|
Hält den aktuellen Kontext für eine bestimmte Zeit an. |
|
Überladen.Erstellt eine Aufgabe, die erfolgreich abgeschlossen wird, wenn alle Aufgaben, die als Argumente angegeben werden, erfolgreich abgeschlossen werden. |
|
Überladen.Erstellt eine Aufgabe, die erfolgreich abgeschlossen wird, wenn eines der Aufgaben, die als Argumente angegeben werden, erfolgreich abgeschlossen wird. |
Operatoren
Name |
Description |
---|---|
Testet, ob das concurrent_vector-Objekt links vom Operator ungleich dem concurrent_vector-Objekt rechts vom Operator ist. |
|
Überladen.Erstellt eine Aufgabe, die erfolgreich abgeschlossen wird, wenn beide der Aufgaben, die als Argumente angegeben werden, erfolgreich abgeschlossen werden. |
|
Überladen.Erstellt eine Aufgabe, die erfolgreich abgeschlossen wird, wenn eine der Aufgaben, die als Argumente angegeben werden, erfolgreich abgeschlossen wird. |
|
Testet, ob das concurrent_vector-Objekt links vom Operator kleiner als das concurrent_vector-Objekt auf der rechten Seite ist. |
|
Testet, ob das concurrent_vector-Objekt links vom Operator kleiner oder gleich dem concurrent_vector-Objekt auf der rechten Seite ist. |
|
Testet, ob das concurrent_vector-Objekt links vom Operator gleich dem concurrent_vector-Objekt rechts vom Operator ist. |
|
Testet, ob das concurrent_vector-Objekt links vom Operator größer als das concurrent_vector-Objekt auf der rechten Seite ist. |
|
Testet, ob das concurrent_vector-Objekt links vom Operator größer oder gleich dem concurrent_vector-Objekt auf der rechten Seite ist. |
Konstanten
Name |
Description |
---|---|
Ein Kategorie-GUID ({B9B5B78C - 0713 - 4898 - 21 A.C. 67949DCED07}) ETW-Ereignisse ausgelöst durch die Agents Library in der Concurrency Runtime beschreibt. |
|
Eine Kategorie-GUID, die ETW-Ereignisse beschreibt, die von der Concurrency Runtime ausgelöst werden und sich direkt auf Routinearbeiten oder Aufgaben beziehen. |
|
Der ETW-Anbieter GUID für die Concurrency Runtime. |
|
Gibt Unterstützung der Ressourcen-Manager-Schnittstelle an, die in Visual Studio 2010 definiert ist. |
|
Eine Kategorie-GUID, die ETW-Ereignisse beschreibt, die von der Concurrency Runtime ausgelöst werden und nicht in eine der anderen Kategorien fallen. |
|
Eine Kategorie-GUID, die ETW-Ereignisse beschreibt, die von der Concurrency Runtime ausgelöst werden und sich direkt auf Kontexte beziehen. |
|
Wert, der angibt, dass ein Wartevorgang nie durch ein Timeout beendet werden soll. |
|
Wert, der angibt, dass ein Wartevorgang durch ein Timeout beendet wurde. |
|
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. |
|
Eine Kategorie-GUID, die ETW-Ereignisse beschreibt, die von der Concurrency Runtime ausgelöst werden und sich direkt auf Sperren beziehen. |
|
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. |
|
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. |
|
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. |
|
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. |
|
Eine Kategorie-GUID, die ETW-Ereignisse beschreibt, die von der Concurrency Runtime ausgelöst werden und sich direkt auf den Ressourcen-Manager beziehen. |
|
Eine Kategorie-GUID, die ETW-Ereignisse beschreibt, die von der Concurrency Runtime ausgelöst werden und sich direkt auf Planungsgruppen beziehen. |
|
Eine Kategorie-GUID, die ETW-Ereignisse beschreibt, die von der Concurrency Runtime ausgelöst werden und sich direkt auf Planeraktivitäten beziehen. |
|
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_priority_queue.h, concurrent_queue.h, concurrent_unordered_map.h, concurrent_unordered_set.h, concurrent_vector.h, ppl.h, ppltasks.h