Delen via


Naamruimte gelijktijdigheid

De Concurrency naamruimte biedt klassen en functies waarmee u toegang krijgt tot de Gelijktijdigheidsruntime, een gelijktijdig programmeerframework voor C++. Zie Concurrency Runtime voor meer informatie.

Syntaxis

namespace concurrency;

Leden

Typedefs

Naam Beschrijving
runtime_object_identity Elk berichtexemplaren hebben een identiteit die volgt wanneer deze wordt gekloond en doorgegeven tussen berichtenonderdelen. Dit kan niet het adres van het berichtobject zijn.
task_status Een type dat de terminalstatus van een taak vertegenwoordigt. Geldige waarden zijn completed en canceled.
TaskProc Een elementaire abstractie voor een taak, gedefinieerd als void (__cdecl * TaskProc)(void *). Een TaskProc wordt aangeroepen om de hoofdtekst van een taak aan te roepen.
TaskProc_t Een elementaire abstractie voor een taak, gedefinieerd als void (__cdecl * TaskProc_t)(void *). Een TaskProc wordt aangeroepen om de hoofdtekst van een taak aan te roepen.

Klassen

Naam Beschrijving
affinity_partitioner-klasse De affinity_partitioner klasse is vergelijkbaar met de static_partitioner klasse, maar verbetert de cacheaffiniteit door de keuze voor het toewijzen van subbereiken aan werkthreads. Dit kan de prestaties aanzienlijk verbeteren wanneer een lus opnieuw wordt uitgevoerd via dezelfde gegevensset en de gegevens in de cache passen. Houd er rekening mee dat hetzelfde affinity_partitioner object moet worden gebruikt met volgende iteraties van een parallelle lus die wordt uitgevoerd voor een bepaalde gegevensset, om te profiteren van de locatie van de gegevens.
agentklasse Een klasse die is bedoeld om te worden gebruikt als basisklasse voor alle onafhankelijke agents. Het wordt gebruikt om de status van andere agents te verbergen en te communiceren met behulp van berichtdoorgifte.
auto_partitioner-klasse De auto_partitioner klasse vertegenwoordigt de standaardmethode parallel_for_eachparallel_foren parallel_transform gebruikt om het bereik te partitioneren dat wordt herhaald. Deze partitioneringsmethode maakt gebruik van bereikdiefstal voor taakverdeling en annulering per itereren.
bad_target-klasse Deze klasse beschrijft een uitzondering die wordt gegenereerd wanneer een berichtenblok een aanwijzer krijgt naar een doel dat ongeldig is voor de bewerking die wordt uitgevoerd.
gespreksklasse Een call berichtenblok is een multi-source, geordend target_block die een opgegeven functie aanroept bij het ontvangen van een bericht.
cancellation_token-klasse De cancellation_token klasse vertegenwoordigt de mogelijkheid om te bepalen of een bewerking is aangevraagd om te annuleren. Een bepaald token kan worden gekoppeld aan een task_group, structured_task_groupof task om impliciete annulering te bieden. Het kan ook worden gecontroleerd op annulering of een callback geregistreerd voor als en wanneer de gekoppelde cancellation_token_source wordt geannuleerd.
cancellation_token_registration-klasse De cancellation_token_registration klasse vertegenwoordigt een callbackmelding van een cancellation_token. Wanneer de register methode op een cancellation_token wordt gebruikt om een melding te ontvangen van wanneer annulering plaatsvindt, wordt een cancellation_token_registration object geretourneerd als een handle voor de callback, zodat de beller een specifieke callback kan aanvragen, niet meer via de deregister methode.
Cancellation_Token_Source-Klasse De cancellation_token_source klasse vertegenwoordigt de mogelijkheid om een annuleringsbewerking te annuleren.
Choice class Een choice berichtenblok is een multi-source blok met één doel dat een interactie tussen besturingsstromen en een set bronnen vertegenwoordigt. Het keuzeblok wacht tot een van de meerdere bronnen een bericht produceert en geeft de index door van de bron die het bericht heeft geproduceerd.
combineerbare klasse Het combinable<T> object is bedoeld om thread-privékopieën van gegevens te bieden, om vergrendelingsvrije thread-lokale subberekeningen uit te voeren tijdens parallelle algoritmen. Aan het einde van de parallelle bewerking kunnen de thread-privésubberekeningen vervolgens worden samengevoegd in een eindresultaat. Deze klasse kan worden gebruikt in plaats van een gedeelde variabele en kan leiden tot een prestatieverbetering als er anders veel conflicten zouden optreden op die gedeelde variabele.
concurrent_priority_queue-klasse De concurrent_priority_queue klasse is een container waarmee meerdere threads gelijktijdig items kunnen pushen en pop-items kunnen pushen. Items worden weergegeven in prioriteitsvolgorde waarbij prioriteit wordt bepaald door een functor die als sjabloonargument wordt opgegeven.
concurrent_queue-klasse De concurrent_queue klasse is een reekscontainerklasse die first-in, first-out-toegang tot de elementen toestaat. Het maakt een beperkte set gelijktijdigheidsveilige bewerkingen mogelijk, zoals push en try_pop.
concurrent_unordered_map-klasse De concurrent_unordered_map-klasse is een gelijktijdigheidsveilige container die een wisselende reeks elementen van het type std::pair<const K, _Element_type>beheert. De reeks wordt weergegeven op een manier waarmee gelijktijdigheidsveilige toevoeg-, elementtoegang, iterator-toegang en iterator-traversal-bewerkingen mogelijk zijn.
concurrent_unordered_multimap-klasse De concurrent_unordered_multimap-klasse is een gelijktijdigheidsveilige container die een wisselende reeks elementen van het type std::pair<const K, _Element_type>beheert. De reeks wordt weergegeven op een manier die gelijktijdigheidsveilige toevoeg-, elementtoegang, iterator-toegang en iterator-doorkruisingsbewerkingen mogelijk maakt.
concurrent_unordered_multiset-klasse De concurrent_unordered_multiset-klasse is een gelijktijdigheidsveilige container waarmee een reeks elementen van het type K wordt bestuurd. De reeks wordt weergegeven op een manier die gelijktijdigheidsveilige toevoeg-, elementtoegang, iterator-toegang en iterator-doorkruisingsbewerkingen mogelijk maakt.
concurrent_unordered_set-klasse De concurrent_unordered_set-klasse is een gelijktijdigheidsveilige container waarmee een reeks elementen van het type K wordt bestuurd. De reeks wordt weergegeven op een manier die gelijktijdigheidsveilige toevoeg-, elementtoegang, iterator-toegang en iterator-doorkruisingsbewerkingen mogelijk maakt.
concurrent_vector-klasse De concurrent_vector klasse is een reekscontainerklasse die willekeurige toegang tot elk element toestaat. Het maakt gelijktijdigheidsveilige toevoeg-, elementtoegang, iterator-toegang en iterator-doorkruisingsbewerkingen mogelijk.
Contextklasse Vertegenwoordigt een abstractie voor een uitvoeringscontext.
context_self_unblock-klasse In deze klasse wordt een uitzondering beschreven die wordt gegenereerd wanneer de Unblock methode van een Context object wordt aangeroepen vanuit dezelfde context. Dit duidt op een poging van een bepaalde context om de blokkering op te heffen.
context_unblock_unbalanced-klasse In deze klasse wordt een uitzondering beschreven die wordt gegenereerd wanneer aanroepen naar het Block object en Unblock methoden van een Context object niet correct zijn gekoppeld.
critical_section-klasse Een niet-reentrant mutex die expliciet op de hoogte is van de Gelijktijdigheidsruntime.
Klasse CurrentScheduler Vertegenwoordigt een abstractie voor de huidige planner die is gekoppeld aan de aanroepende context.
default_scheduler_exists-klasse In deze klasse wordt een uitzondering beschreven die wordt gegenereerd wanneer de Scheduler::SetDefaultSchedulerPolicy methode wordt aangeroepen wanneer er al een standaardplanner bestaat binnen het proces.
gebeurtenisklasse Een handmatige reset-gebeurtenis die expliciet op de hoogte is van de Gelijktijdigheidsruntime.
improper_lock-klasse Deze klasse beschrijft een uitzondering die wordt gegenereerd wanneer een vergrendeling onjuist wordt verkregen.
improper_scheduler_attach-klasse In deze klasse wordt een uitzondering beschreven die wordt gegenereerd wanneer de Attach methode wordt aangeroepen op een Scheduler object dat al is gekoppeld aan de huidige context.
improper_scheduler_detach-klasse In deze klasse wordt een uitzondering beschreven die wordt gegenereerd wanneer de CurrentScheduler::Detach methode wordt aangeroepen in een context die niet is gekoppeld aan een scheduler met behulp van de Attach methode van een Scheduler object.
improper_scheduler_reference-klasse In deze klasse wordt een uitzondering beschreven die wordt gegenereerd wanneer de Reference methode wordt aangeroepen voor een Scheduler object dat wordt afgesloten, vanuit een context die geen deel uitmaakt van die scheduler.
invalid_link_target-klasse In deze klasse wordt een uitzondering beschreven die wordt gegenereerd wanneer de link_target methode van een berichtenblok wordt aangeroepen en het berichtenblok geen koppeling naar het doel kan maken. Dit kan het gevolg zijn van het overschrijden van het aantal koppelingen dat het berichtenblok toestaat of twee keer probeert een specifiek doel te koppelen aan dezelfde bron.
invalid_multiple_scheduling-klasse In deze klasse wordt een uitzondering beschreven die wordt gegenereerd wanneer een task_handle object meerdere keren wordt gepland met behulp van de run methode van een task_group of structured_task_group object zonder tussenliggende aanroep naar de wait of run_and_wait methoden.
invalid_operation-klasse In deze klasse wordt een uitzondering beschreven die wordt gegenereerd wanneer een ongeldige bewerking wordt uitgevoerd die niet nauwkeuriger wordt beschreven door een ander uitzonderingstype dat door de Gelijktijdigheidsruntime wordt gegenereerd.
invalid_oversubscribe_operation-klasse Deze klasse beschrijft een uitzondering die wordt gegenereerd wanneer de Context::Oversubscribe methode wordt aangeroepen met de _BeginOversubscription parameter die is ingesteld false op zonder voorafgaande aanroep van de Context::Oversubscribe methode met de _BeginOversubscription parameter ingesteld op true.
invalid_scheduler_policy_key-klasse Deze klasse beschrijft een uitzondering die wordt gegenereerd wanneer een ongeldige of onbekende sleutel wordt doorgegeven aan een SchedulerPolicy objectconstructor, of de SetPolicyValue methode van een SchedulerPolicy object wordt doorgegeven aan een sleutel die moet worden gewijzigd met andere middelen, zoals de SetConcurrencyLimits methode.
invalid_scheduler_policy_thread_specification-klasse Deze klasse beschrijft een uitzondering die wordt gegenereerd wanneer een poging wordt gedaan om de gelijktijdigheidslimieten van een SchedulerPolicy-object in te stellen, zodat de waarde van de MinConcurrency sleutel kleiner is dan de waarde van de MaxConcurrency sleutel.
invalid_scheduler_policy_value-klasse Deze klasse beschrijft een uitzondering die wordt gegenereerd wanneer een beleidssleutel van een SchedulerPolicy-object is ingesteld op een ongeldige waarde voor die sleutel.
ISource-klasse De ISource klasse is de interface voor alle bronblokken. Bronblokken geven berichten door aan ITarget blokken.
ITarget-klasse De ITarget klasse is de interface voor alle doelblokken. Doelblokken verbruiken berichten die aan hen worden aangeboden door ISource blokken.
meedoen aan les Een join berichtenblok is een berichtenblok met één doel, meerdere bronnen, geordend propagator_block , waarin berichten van het type T van elk van de bronnen worden gecombineerd.
locatieklasse Een abstractie van een fysieke locatie op hardware.
berichtklasse De basisberichtenvelop met de nettolading van de gegevens die tussen berichtenblokken wordt doorgegeven.
message_not_found-klasse In deze klasse wordt een uitzondering beschreven die is opgetreden wanneer een berichtblok geen aangevraagd bericht kan vinden.
message_processor-klasse De message_processor klasse is de abstracte basisklasse voor het verwerken van message objecten. Er is geen garantie voor de volgorde van de berichten.
missing_wait-klasse In deze klasse wordt een uitzondering beschreven die wordt gegenereerd wanneer er nog taken zijn gepland voor een task_group of structured_task_group object op het moment dat de destructor van het object wordt uitgevoerd. Deze uitzondering wordt nooit gegenereerd als de destructor wordt bereikt vanwege een stapel die wordt afgewikkeld als gevolg van een uitzondering.
multi_link_registry-klasse Het multi_link_registry object is een network_link_registry object dat meerdere bronblokken of meerdere doelblokken beheert.
multitype_join-klasse Een multitype_join berichtenblok is een berichtenblok met meerdere bronnen en één doel dat berichten van verschillende typen van elk van de bronnen combineert en een tuple van de gecombineerde berichten aan de doelen biedt.
nested_scheduler_missing_detach-klasse In deze klasse wordt een uitzondering beschreven die wordt gegenereerd wanneer de Gelijktijdigheidsruntime detecteert dat u de CurrentScheduler::Detach methode niet hebt aangeroepen in een context die is gekoppeld aan een tweede scheduler met behulp van de Attach methode van het Scheduler object.
network_link_registry-klasse De network_link_registry abstracte basisklasse beheert de koppelingen tussen bron- en doelblokken.
operation_timed_out-klasse In deze klasse wordt een uitzondering beschreven die wordt gegenereerd wanneer er een time-out optreedt voor een bewerking.
ordered_message_processor-klasse Een ordered_message_processor is een message_processor waarmee berichtblokken berichten kunnen verwerken in de volgorde waarin ze zijn ontvangen.
overwrite_buffer-klasse Een overwrite_buffer berichtenblok is een multi-doel, multi-bron, geordend propagator_block om één bericht tegelijk op te slaan. Nieuwe berichten overschrijven eerder bewaarde berichten.
progress_reporter-klasse Met de klasse voortgangsrapporter kunt u voortgangsmeldingen van een specifiek type rapporteren. Elk progress_reporter object is gebonden aan een bepaalde asynchrone actie of bewerking.
propagator_block-klasse De propagator_block klasse is een abstracte basisklasse voor berichtblokken die zowel een bron als een doel zijn. Het combineert de functionaliteit van zowel de als target_block de source_block klassen.
reader_writer_lock-klasse Een schrijfvoorkeurwachtrij op basis van lezer-schrijververgrendeling met alleen lokaal draaien. De vergrendeling verleent eerst in - first out (FIFO) toegang tot schrijvers en starves lezers onder een continue belasting van schrijvers.
ScheduleGroup-klasse Vertegenwoordigt een abstractie voor een planningsgroep. Planningsgroepen organiseren een set gerelateerd werk dat profiteert van een geplande planning, hetzij tijdelijk, door een andere taak in dezelfde groep uit te voeren voordat u naar een andere groep gaat, of ruimtelijk, door meerdere items binnen dezelfde groep uit te voeren op hetzelfde NUMA-knooppunt of fysieke socket.
Scheduler-klasse Vertegenwoordigt een abstractie voor een Runtime-scheduler voor gelijktijdigheid.
scheduler_not_attached-klasse In deze klasse wordt een uitzondering beschreven die wordt gegenereerd wanneer een bewerking wordt uitgevoerd waarvoor een scheduler moet worden gekoppeld aan de huidige context en niet.
scheduler_resource_allocation_error-klasse In deze klasse wordt een uitzondering beschreven die is opgetreden vanwege een fout bij het verkrijgen van een kritieke resource in de Gelijktijdigheidsruntime.
klasse scheduler_worker_creation_error In deze klasse wordt een uitzondering beschreven die is opgetreden vanwege een fout bij het maken van een werkroluitvoeringscontext in de Gelijktijdigheidsruntime.
SchedulerPolicy-klasse De SchedulerPolicy klasse bevat een set sleutel-/waardeparen, één voor elk beleidselement, waarmee het gedrag van een scheduler-exemplaar wordt bepaald.
simple_partitioner-klasse De simple_partitioner klasse vertegenwoordigt een statische partitionering van het bereik dat wordt overschreven door parallel_for. De partitioner verdeelt het bereik in segmenten, zodat elk segment ten minste het aantal iteraties bevat dat is opgegeven door de segmentgrootte.
single_assignment-klasse Een single_assignment berichtenblok is een multi-doel, multi-bron, geordend propagator_block voor het opslaan van één, schrijf-één message.
single_link_registry-klasse Het single_link_registry object is een network_link_registry object dat slechts één bron- of doelblok beheert.
source_block-klasse De source_block klasse is een abstracte basisklasse voor alleen bronblokken. De klasse biedt eenvoudige functionaliteit voor koppelingsbeheer en veelvoorkomende foutcontroles.
source_link_manager-klasse Het source_link_manager object beheert berichtenbloknetwerkkoppelingen naar ISource blokken.
static_partitioner-klasse De static_partitioner klasse vertegenwoordigt een statische partitionering van het bereik dat wordt overschreven door parallel_for. De partitioner verdeelt het bereik in zoveel segmenten als er werkrollen beschikbaar zijn voor de onderliggende planner.
structured_task_group-klasse De structured_task_group klasse vertegenwoordigt een zeer gestructureerde verzameling parallelle werkzaamheden. U kunt afzonderlijke parallelle taken in de wachtrij plaatsen voor een structured_task_group object met behulp van task_handle objecten en wachten totdat ze zijn voltooid of de taakgroep annuleren voordat ze klaar zijn met het uitvoeren, waardoor alle taken die nog niet zijn begonnen met de uitvoering worden afgebroken.
target_block-klasse De target_block klasse is een abstracte basisklasse die eenvoudige functionaliteit voor koppelingsbeheer en foutcontrole biedt voor alleen doelblokken.
taakklasse (Gelijktijdigheidsruntime) De PPL-klasse (Parallel Patterns Library). task Een task object vertegenwoordigt werk dat asynchroon kan worden uitgevoerd en gelijktijdig met andere taken en parallel werk dat wordt geproduceerd door parallelle algoritmen in de Gelijktijdigheidsruntime. Het produceert een resultaat van het type _ResultType bij een geslaagde voltooiing. Taken van het type task<void> produceren geen resultaat. Een taak kan onafhankelijk van andere taken worden gewacht en geannuleerd. Het kan ook worden samengesteld met andere taken met behulp van vervolgpatronen(then) en join(when_all) en keuzepatronenwhen_any.
task_canceled-klasse In deze klasse wordt een uitzondering beschreven die wordt gegenereerd door de PPL-takenlaag om af te dwingen dat de huidige taak wordt geannuleerd. Deze wordt ook gegenereerd door de get() methode voor de taak, voor een geannuleerde taak.
task_completion_event-klasse Met task_completion_event de klasse kunt u de uitvoering van een taak uitstellen totdat aan een voorwaarde is voldaan of een taak starten als reactie op een externe gebeurtenis.
task_continuation_context-klasse Met de task_continuation_context klasse kunt u opgeven waar u een vervolg wilt uitvoeren. Het is alleen handig om deze klasse te gebruiken vanuit een UWP-app. Voor niet-Windows Runtime-apps wordt de uitvoeringscontext van de taakvervolging bepaald door de runtime en kan deze niet worden geconfigureerd.
task_group-klasse De task_group klasse vertegenwoordigt een verzameling parallelle werkzaamheden die kunnen worden gewacht of geannuleerd.
task_handle-klasse De task_handle klasse vertegenwoordigt een afzonderlijk parallel werkitem. Hierin worden de instructies en de gegevens ingekapseld die nodig zijn om een stuk werk uit te voeren.
task_options klasse (Gelijktijdigheidsruntime) Vertegenwoordigt de toegestane opties voor het maken van een taak
timerklasse Een timer berichtenblok is een enkel doel source_block dat een bericht naar het doel kan verzenden nadat een bepaalde periode is verstreken of met specifieke intervallen.
transformatorklasse Een transformer berichtenblok is een enkel doel, meerdere bronnen, geordend propagator_block , dat berichten van één type kan accepteren en een niet-gebonden aantal berichten van een ander type kan opslaan.
onbegrensde buffer-klasse Een unbounded_buffer berichtenblok is een multi-doel, multi-bron, geordend propagator_block om een niet-gebonden aantal berichten op te slaan.
unsupported_os-klasse In deze klasse wordt een uitzondering beschreven die wordt gegenereerd wanneer een niet-ondersteund besturingssysteem wordt gebruikt.

Structuren

Naam Beschrijving
DispatchState-structuur De DispatchState structuur wordt gebruikt om de status over te dragen aan de IExecutionContext::Dispatch methode. Hierin worden de omstandigheden beschreven waaronder de Dispatch methode wordt aangeroepen op een IExecutionContext interface.
Structuur IExecutionContext Een interface naar een uitvoeringscontext die kan worden uitgevoerd op een bepaalde virtuele processor en coöperatief kan worden overgeschakeld.
Structuur IExecutionResource Een abstractie voor een hardwarethread.
IResourceManager-structuur Een interface met Resource Manager van de Gelijktijdigheidsruntime. Dit is de interface waarmee planners communiceren met Resource Manager.
IScheduler-structuur Een interface naar een abstractie van een werkplanner. De Resource Manager van Concurrency Runtime gebruikt deze interface om te communiceren met werkplanners.
Structuur ISchedulerProxy De interface waarmee schedulers communiceren met resourcebeheer van de Gelijktijdigheidsruntime om te onderhandelen over resourcetoewijzing.
Structuur IThreadProxy Een abstractie voor een thread van uitvoering. Afhankelijk van de SchedulerType beleidssleutel van de planner die u maakt, verleent Resource Manager u een threadproxy die wordt ondersteund door een reguliere Win32-thread of een UMS-thread (user-mode). UMS-threads worden ondersteund op 64-bits besturingssystemen met versie Windows 7 en hoger.
Structuur ITopologyExecutionResource Een interface naar een uitvoeringsresource zoals gedefinieerd door Resource Manager.
Structuur ITopologyNode Een interface naar een topologieknooppunt zoals gedefinieerd door Resource Manager. Een knooppunt bevat een of meer uitvoeringsresources.
Structuur IUMSCompletionList Vertegenwoordigt een UMS-voltooiingslijst. Wanneer een UMS-thread wordt geblokkeerd, wordt de aangewezen planningscontext van de planner verzonden om te bepalen wat er moet worden gepland op de onderliggende hoofdmap van de virtuele processor terwijl de oorspronkelijke thread wordt geblokkeerd. Wanneer de oorspronkelijke thread wordt gedeblokkeerd, wordt het besturingssysteem in de wachtrij geplaatst bij de voltooiingslijst die toegankelijk is via deze interface. De planner kan een query uitvoeren op de voltooiingslijst in de aangewezen planningscontext of op een andere plaats waar wordt gezocht naar werk.
IUMSScheduler Structuur Een interface voor een abstractie van een werkplanner die wil dat Resource Manager van de Gelijktijdigheidsruntime deze gebruikersmodus schedulable threads (UMS) geeft. Resource Manager gebruikt deze interface om te communiceren met UMS-threadplanners. De IUMSScheduler interface neemt over van de IScheduler interface.
IUMSThreadProxy-structuur Een abstractie voor een thread van uitvoering. Als u wilt dat uw scheduler schedulable (UMS)-threads (user-mode) krijgt, stelt u de waarde voor het scheduler-beleidselement SchedulerKind in UmsThreadDefaultop en implementeert u de IUMSScheduler interface. UMS-threads worden alleen ondersteund op 64-bits besturingssystemen met versie Windows 7 en hoger.
Structuur IUMSUnblockNotification Vertegenwoordigt een melding van Resource Manager dat een threadproxy die een terugkeer naar de aangewezen planningscontext van de planner heeft geblokkeerd en geactiveerd, is opgeheven en gereed is om te worden gepland. Deze interface is ongeldig zodra de bijbehorende uitvoeringscontext van de threadproxy, geretourneerd door de GetContext methode, opnieuw is gepland.
Structuur IVirtualProcessorRoot Een abstractie voor een hardwarethread waarop een threadproxy kan worden uitgevoerd.
scheduler_interface structuur Scheduler-interface
scheduler_ptr structuur (gelijktijdigheidsruntime) Vertegenwoordigt een aanwijzer naar een planner. Deze klasse bestaat om de specificatie van een gedeelde levensduur toe te staan met behulp van shared_ptr of alleen een eenvoudige verwijzing met behulp van onbewerkte aanwijzer.

Opsommingen

Naam Beschrijving
agent_status De geldige statussen voor een agent.
Agents_EventType De typen gebeurtenissen die kunnen worden getraceerd met behulp van de traceringsfunctionaliteit die wordt aangeboden door de agentsbibliotheek
ConcRT_EventType De typen gebeurtenissen die kunnen worden getraceerd met behulp van de traceringsfunctionaliteit die wordt aangeboden door de Gelijktijdigheidsruntime.
Concrt_TraceFlags Traceringsvlagmen voor de gebeurtenistypen
CriticalRegionType Het type kritieke regio waarbinnen een context zich bevindt.
DynamicProgressFeedbackType Wordt door het DynamicProgressFeedback beleid gebruikt om te beschrijven of resources voor de scheduler opnieuw worden geherbalanceerd op basis van statistische gegevens die zijn verzameld van de scheduler of alleen op basis van virtuele processors die in- en uit de status niet-actief gaan door aanroepen naar de Activate interface en Deactivate methoden op de IVirtualProcessorRoot interface. Zie PolicyElementKey voor meer informatie over beschikbare scheduler-beleidsregels.
join_type Het type join berichtblok.
message_status De geldige antwoorden voor een aanbieding van een message object aan een blok.
PolicyElementKey Beleidssleutels die aspecten van het gedrag van scheduler beschrijven. Elk beleidselement wordt beschreven door een sleutel-waardepaar. Zie Task Scheduler voor meer informatie over scheduler-beleidsregels en hun invloed op planners.
SchedulerType Wordt door het SchedulerKind beleid gebruikt om het type threads te beschrijven dat de scheduler moet gebruiken voor onderliggende uitvoeringscontexten. Zie PolicyElementKey voor meer informatie over beschikbare scheduler-beleidsregels.
SchedulingProtocolType Wordt door het SchedulingProtocol beleid gebruikt om te beschrijven welk planningsalgoritmen worden gebruikt voor de scheduler. Zie PolicyElementKey voor meer informatie over beschikbare scheduler-beleidsregels.
SwitchingProxyState Wordt gebruikt om de status aan te geven waarin een threadproxy zich bevindt, wanneer er een coöperatieve context wordt uitgevoerd naar een andere threadproxy.
task_group_status Beschrijft de uitvoeringsstatus van een task_group of structured_task_group object. Een waarde van dit type wordt geretourneerd door talloze methoden die wachten op taken die zijn gepland voor een taakgroep die is voltooid.
WinRTInitializationType Wordt door het WinRTInitialization beleid gebruikt om te beschrijven of en hoe Windows Runtime wordt geïnitialiseerd op scheduler-threads voor een toepassing die wordt uitgevoerd op besturingssystemen met versie Windows 8 of hoger. Zie PolicyElementKey voor meer informatie over beschikbare scheduler-beleidsregels.

Functies

Naam Beschrijving
Alloc-functie Wijst een blok geheugen toe van de grootte die is opgegeven vanuit de Suballocator voor gelijktijdigheidsruntime.
asend, functie Overbelast. Een asynchrone verzendbewerking, waarmee een taak wordt gepland om de gegevens door te geven aan het doelblok.
cancel_current_task, functie Hiermee wordt de momenteel uitgevoerde taak geannuleerd. Deze functie kan worden aangeroepen vanuit de hoofdtekst van een taak om de uitvoering van de taak af te breken en ervoor te zorgen dat deze de status canceled invoert.

Het is geen ondersteund scenario om deze functie aan te roepen als u zich niet in de hoofdtekst van een taskbevindt. Als u dit doet, resulteert dit in niet-gedefinieerd gedrag, zoals een crash of niet-reactievermogen in uw toepassing.
create_async, functie Hiermee maakt u een asynchrone Windows Runtime-constructie op basis van een door de gebruiker opgegeven lambda- of functieobject. Het retourtype van create_async is een van de IAsyncAction^, IAsyncActionWithProgress<TProgress>^, IAsyncOperation<TResult>^of IAsyncOperationWithProgress<TResult, TProgress>^ op basis van de handtekening van de lambda die aan de methode is doorgegeven.
create_task, functie Overbelast. Hiermee maakt u een PPL-taak-object. create_task kan overal worden gebruikt waar u een taakconstructor zou hebben gebruikt. Het wordt voornamelijk voor het gemak geleverd, omdat het het gebruik van het auto trefwoord tijdens het maken van taken toestaat.
CreateResourceManager, functie Hiermee wordt een interface geretourneerd die het singleton-exemplaar van Resource Manager van de Gelijktijdigheidsruntime vertegenwoordigt. Resource Manager is verantwoordelijk voor het toewijzen van resources aan planners die met elkaar willen samenwerken.
DisableTracing, functie Hiermee schakelt u tracering uit in de Gelijktijdigheidsruntime. Deze functie is afgeschaft omdat ETW-tracering standaard niet is geregistreerd.
EnableTracing, functie Hiermee schakelt u tracering in de Gelijktijdigheidsruntime in. Deze functie is afgeschaft omdat ETW-tracering nu standaard is ingeschakeld.
Gratis functie Hiermee wordt een geheugenblok uitgebracht dat eerder door de Alloc methode is toegewezen aan de Suballocator voor gelijktijdigheidsruntime caching.
get_ambient_scheduler-functie (gelijktijdigheidsruntime)
Functie GetExecutionContextId Retourneert een unieke id die kan worden toegewezen aan een uitvoeringscontext waarmee de IExecutionContext-interface wordt geïmplementeerd.
GetOSVersion, functie Retourneert de versie van het besturingssysteem.
GetProcessorCount, functie Retourneert het aantal hardwarethreads op het onderliggende systeem.
GetProcessorNodeCount, functie Retourneert het aantal NUMA-knooppunten of processorpakketten op het onderliggende systeem.
GetSchedulerId, functie Retourneert een unieke id die kan worden toegewezen aan een planner waarmee de IScheduler-interface wordt geïmplementeerd.
interruption_point, functie Hiermee maakt u een onderbrekingspunt voor annulering. Als er een annulering wordt uitgevoerd in de context waarin deze functie wordt aangeroepen, genereert dit een interne uitzondering waardoor de uitvoering van het huidige parallelle werk wordt afgebroken. Als de annulering niet wordt uitgevoerd, doet de functie niets.
is_current_task_group_canceling, functie Retourneert een indicatie of de taakgroep die momenteel inline wordt uitgevoerd op de huidige context zich midden in een actieve annulering bevindt (of binnenkort zal zijn). Houd er rekening mee dat als er momenteel geen taakgroep inline wordt uitgevoerd in de huidige context, false wordt geretourneerd.
make_choice, functie Overbelast. Hiermee maakt u een choice berichtenblok van een optionele Scheduler of ScheduleGroup en twee of meer invoerbronnen.
make_greedy_join, functie Overbelast. Hiermee maakt u een greedy multitype_join berichtenblok van een optionele Scheduler of ScheduleGroup en twee of meer invoerbronnen.
make_join, functie Overbelast. Hiermee maakt u een non_greedy multitype_join berichtenblok van een optionele Scheduler of ScheduleGroup en twee of meer invoerbronnen.
make_task, functie Een factorymethode voor het maken van een task_handle-object.
parallel_buffered_sort, functie Overbelast. Rangschikt de elementen in een opgegeven bereik in een niet-aflopende volgorde, of volgens een rangordecriterium dat is opgegeven door een binair predicaat, parallel. Deze functie is semantisch vergelijkbaar met std::sort omdat het een op vergelijking gebaseerde, instabiele, in-place sortering is, behalve dat deze O(n) extra ruimte nodig heeft en standaard initialisatie vereist voor de elementen die worden gesorteerd.
parallel_for, functie Overbelast. parallel_for doorloopt een reeks indexen en voert een door de gebruiker geleverde functie parallel uit bij elke iteratie.
parallel_for_each, functie Overbelast. parallel_for_each past een opgegeven functie toe op elk element binnen een bereik, parallel. Het is semantisch equivalent aan de for_each functie in de std naamruimte, behalve dat iteratie over de elementen parallel wordt uitgevoerd en de volgorde van iteratie niet is opgegeven. Het argument _Func moet een operator voor functieaanroep van het formulier ondersteunen operator()(T) waarbij de parameter T het itemtype is van de container die wordt overschreven.
parallel_invoke, functie Overbelast. Hiermee worden de functieobjecten uitgevoerd die parallel als parameters worden opgegeven en worden geblokkeerd totdat ze zijn uitgevoerd. Elk functieobject kan een lambda-expressie, een aanwijzer naar functie zijn of een object dat de operator voor functieoproep ondersteunt met de handtekening void operator()().
parallel_radixsort-functie Overbelast. Rangschikt elementen in een opgegeven bereik in een niet-aflopende volgorde met behulp van een radix sorteeralgoritmen. Dit is een stabiele sorteerfunctie die een projectiefunctie vereist waarmee elementen kunnen worden gesorteerd in niet-ondertekende sleutels die op gehele getallen lijken. Standaard initialisatie is vereist voor de elementen die worden gesorteerd.
parallel_reduce functie Overbelast. Berekent de som van alle elementen in een opgegeven bereik door opeenvolgende gedeeltelijke sommen te berekenen of berekent het resultaat van opeenvolgende gedeeltelijke resultaten, vergelijkbaar met het gebruik van een opgegeven binaire bewerking dan som, parallel. parallel_reduce is semantisch vergelijkbaar met std::accumulate, behalve dat de binaire bewerking moet worden gekoppeld en een identiteitswaarde vereist in plaats van een initiële waarde.
parallel_sort Functie Overbelast. Rangschikt de elementen in een opgegeven bereik in een niet-aflopende volgorde, of volgens een rangordecriterium dat is opgegeven door een binair predicaat, parallel. Deze functie is semantisch vergelijkbaar met std::sort omdat het een op vergelijking gebaseerde, onstabiele, in-place sortering is.
parallel_transform Functie Overbelast. Hiermee past u een opgegeven functieobject toe op elk element in een bronbereik of op een paar elementen uit twee bronbereiken en kopieert u de retourwaarden van het functieobject parallel naar een doelbereik. Deze functionaliteit is semantisch gelijk aan std::transform.
Ontvangfunctie Overbelast. Een algemene ontvangst-implementatie, waardoor een context kan wachten op gegevens uit precies één bron en de waarden kan filteren die worden geaccepteerd.
run_with_cancellation_token, functie Hiermee wordt een functieobject onmiddellijk en synchroon uitgevoerd in de context van een bepaald annuleringstoken.
functie verzenden Overbelast. Een synchrone verzendbewerking, die wacht totdat het doel het bericht accepteert of weigert.
set_ambient_scheduler-functie (gelijktijdigheidsruntime)
set_task_execution_resources, functie Overbelast. Hiermee beperkt u de uitvoeringsbronnen die worden gebruikt door de interne werkrolthreads van Concurrency Runtime tot de opgegeven affiniteitsset.

Het is alleen geldig om deze methode aan te roepen voordat de Resource Manager is gemaakt of tussen twee Levensduur van Resource Manager. Deze kan meerdere keren worden aangeroepen zolang de Resource Manager niet bestaat op het moment van aanroepen. Nadat een affiniteitslimiet is ingesteld, blijft deze van kracht totdat de volgende geldige aanroep van de methode set_task_execution_resources.

Het opgegeven affiniteitsmasker hoeft geen subset van het procesaffiniteitsmasker te zijn. De procesaffiniteit wordt indien nodig bijgewerkt.
wisselfunctie Hiermee worden de elementen van twee concurrent_vector objecten uitgewisseld.
task_from_exception-functie (gelijktijdigheidsruntime)
task_from_result-functie (gelijktijdigheidsruntime)
Trace_agents_register_name, functie Koppelt de opgegeven naam aan het berichtblok of de agent in de ETW-trace.
try_receive-functie Overbelast. Een algemene implementatie voor try-receive, waardoor een context kan zoeken naar gegevens uit precies één bron en de waarden kan filteren die worden geaccepteerd. Als de gegevens niet gereed zijn, retourneert de methode onwaar.
wait, functie Hiermee wordt de huidige context gedurende een opgegeven hoeveelheid tijd onderbroken.
when_all, functie Hiermee maakt u een taak die met succes wordt voltooid wanneer alle taken die als argumenten zijn opgegeven, zijn voltooid.
when_any, functie Overbelast. Hiermee maakt u een taak die met succes wordt voltooid wanneer een van de taken die als argumenten zijn opgegeven, is voltooid.

Bedieners

Naam Beschrijving
operator!= Test of het concurrent_vector object aan de linkerkant van de operator niet gelijk is aan het concurrent_vector object aan de rechterkant.
operator&& Overbelast. Hiermee maakt u een taak die met succes wordt voltooid wanneer beide taken die als argumenten zijn opgegeven, zijn voltooid.
operator|| Overbelast. Hiermee maakt u een taak die met succes wordt voltooid wanneer een van de taken die als argumenten zijn opgegeven, is voltooid.
bediener< Test of het concurrent_vector object aan de linkerkant van de operator kleiner is dan het concurrent_vector object aan de rechterkant.
operator<= Test of het concurrent_vector object aan de linkerkant van de operator kleiner is dan of gelijk is aan het concurrent_vector object aan de rechterkant.
operator== Test of het concurrent_vector object aan de linkerkant van de operator gelijk is aan het concurrent_vector object aan de rechterkant.
bediener> Test of het concurrent_vector object aan de linkerkant van de operator groter is dan het concurrent_vector object aan de rechterkant.
operator>= Test of het concurrent_vector object aan de linkerkant van de operator groter is dan of gelijk is aan het concurrent_vector object aan de rechterkant.

Constanten

Naam Beschrijving
AgentEventGuid Een categorie-GUID ({B9B5B78C-0713-4898-A21A-C67949DCED07}) waarin ETW-gebeurtenissen worden beschreven die worden geactiveerd door de bibliotheek Agents in de Gelijktijdigheidsruntime.
ChoreEventGuid Een categorie-GUID die ETW-gebeurtenissen beschrijft die worden geactiveerd door de Gelijktijdigheidsruntime die rechtstreeks zijn gerelateerd aan taken of taken.
ConcRT_ProviderGuid De GUID van de ETW-provider voor de Gelijktijdigheidsruntime.
CONCRT_RM_VERSION_1 Geeft de ondersteuning aan van de Resource Manager-interface die is gedefinieerd in Visual Studio 2010.
ConcRTEventGuid Een categorie-GUID die ETW-gebeurtenissen beschrijft die worden geactiveerd door de Gelijktijdigheidsruntime die niet meer specifiek worden beschreven door een andere categorie.
ContextEventGuid Een categorie-GUID die ETW-gebeurtenissen beschrijft die worden geactiveerd door de Gelijktijdigheidsruntime die rechtstreeks zijn gerelateerd aan contexten.
COOPERATIVE_TIMEOUT_INFINITE Waarde die aangeeft dat er nooit een time-out optreedt voor een wachttijd.
COOPERATIVE_WAIT_TIMEOUT Waarde die aangeeft dat er een wachttijd is opgetreden.
INHERIT_THREAD_PRIORITY Speciale waarde voor de beleidssleutel ContextPriority die aangeeft dat de threadprioriteit van alle contexten in de planner hetzelfde moet zijn als die van de thread die de scheduler heeft gemaakt.
LockEventGuid Een categorie-GUID die ETW-gebeurtenissen beschrijft die worden geactiveerd door de Gelijktijdigheidsruntime die rechtstreeks zijn gerelateerd aan vergrendelingen.
MaxExecutionResources Speciale waarde voor de beleidssleutels MinConcurrency en MaxConcurrency. Standaard wordt het aantal hardwarethreads op de machine ingesteld als er geen andere beperkingen gelden.
PPLParallelForeachEventGuid Een categorie-GUID die ETW-gebeurtenissen beschrijft die worden geactiveerd door de Gelijktijdigheidsruntime die rechtstreeks zijn gerelateerd aan het gebruik van de parallel_for_each functie.
PPLParallelForEventGuid Een categorie-GUID die ETW-gebeurtenissen beschrijft die worden geactiveerd door de Gelijktijdigheidsruntime die rechtstreeks zijn gerelateerd aan het gebruik van de parallel_for functie.
PPLParallelInvokeEventGuid Een categorie-GUID die ETW-gebeurtenissen beschrijft die worden geactiveerd door de Gelijktijdigheidsruntime die rechtstreeks zijn gerelateerd aan het gebruik van de parallel_invoke functie.
ResourceManagerEventGuid Een categorie-GUID die ETW-gebeurtenissen beschrijft die worden geactiveerd door de Gelijktijdigheidsruntime die rechtstreeks zijn gerelateerd aan de resourcemanager.
ScheduleGroupEventGuid Een categorie-GUID die ETW-gebeurtenissen beschrijft die worden geactiveerd door de Gelijktijdigheidsruntime die rechtstreeks zijn gerelateerd aan planningsgroepen.
SchedulerEventGuid Een categorie-GUID die ETW-gebeurtenissen beschrijft die worden geactiveerd door de Gelijktijdigheidsruntime die rechtstreeks zijn gerelateerd aan scheduler-activiteit.
VirtualProcessorEventGuid Een categorie-GUID die ETW-gebeurtenissen beschrijft die worden geactiveerd door de Gelijktijdigheidsruntime die rechtstreeks zijn gerelateerd aan virtuele processors.

Behoeften

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, internal_concurrent_hash.h, internal_split_ordered_list.h, ppl.h, pplcancellation_token.h, pplconcrt.h, pplinterface.h, ppltasks.h

Zie ook

Verwijzing