Dela via


namnområde för samtidighet

Namnområdet Concurrency innehåller klasser och funktioner som ger dig åtkomst till Concurrency Runtime, ett samtidigt programmeringsramverk för C++. Mer information finns i Concurrency Runtime.

Syntax

namespace concurrency;

Medlemmar

Typedefs

Namn Beskrivning
runtime_object_identity Varje meddelandeinstans har en identitet som följer den när den klonas och skickas mellan meddelandekomponenter. Detta kan inte vara adressen till meddelandeobjektet.
task_status En typ som representerar terminaltillståndet för en aktivitet. Giltiga värden är completed och canceled.
TaskProc En elementär abstraktion för en uppgift, definierad som void (__cdecl * TaskProc)(void *). A TaskProc anropas för att anropa en aktivitets brödtext.
TaskProc_t En elementär abstraktion för en uppgift, definierad som void (__cdecl * TaskProc_t)(void *). A TaskProc anropas för att anropa en aktivitets brödtext.

Klasserna

Namn Beskrivning
affinity_partitioner-klass Klassen affinity_partitioner liknar static_partitioner klassen, men den förbättrar cachetillhörigheten genom att välja att mappa undergrupper till arbetstrådar. Det kan förbättra prestanda avsevärt när en loop körs igen över samma datauppsättning och data får plats i cacheminnet. Observera att samma affinity_partitioner objekt måste användas med efterföljande iterationer av en parallell loop som körs över en viss datauppsättning för att dra nytta av datalokaliteten.
agentklass En klass som är avsedd att användas som basklass för alla oberoende agenter. Den används för att dölja tillstånd från andra agenter och interagera med hjälp av meddelandeöverföring.
auto_partitioner-klass Klassen auto_partitioner representerar standardmetoden parallel_foroch parallel_for_eachparallel_transform används för att partitioneras det intervall som de itererar över. Den här metoden för partitionering använder intervallstöld för belastningsutjämning samt per iterate-annullering.
bad_target-klass Den här klassen beskriver ett undantag som utlöses när ett meddelandeblock ges en pekare till ett mål som är ogiltigt för den åtgärd som utförs.
anropa klass Ett call meddelandeblock är en flerkälla, ordnad target_block som anropar en angiven funktion när ett meddelande tas emot.
cancellation_token-klass Klassen cancellation_token representerar möjligheten att avgöra om någon åtgärd har begärts att avbrytas. En viss token kan associeras med en task_group, structured_task_groupeller task för att tillhandahålla implicit annullering. Det kan också avsökas för annullering eller ha ett återanrop registrerat för om och när den associerade cancellation_token_source avbryts.
cancellation_token_registration-klass Klassen cancellation_token_registration representerar ett motringningsmeddelande från en cancellation_token. register När metoden på en cancellation_token används för att ta emot meddelanden om när annulleringen sker, returneras ett cancellation_token_registration objekt som ett handtag till återanropet så att anroparen kan begära att en specifik återanrop inte längre görs med hjälp av deregister metoden.
CancellationTokenSource-klass Klassen cancellation_token_source representerar möjligheten att avbryta vissa avbrutna åtgärder.
choice Class Ett choice meddelandeblock är ett block med flera källor och ett enda mål som representerar en kontrollflödesinteraktion med en uppsättning källor. Valblocket väntar tills någon av flera källor skapar ett meddelande och sprider indexet för källan som skapade meddelandet.
kombinerbar klass Objektet combinable<T> är avsett att tillhandahålla tråd-privata kopior av data, för att utföra låsfria tråd-lokala underberäkningar under parallella algoritmer. I slutet av den parallella åtgärden kan de tråd-privata underberäkningarna sedan sammanfogas till ett slutligt resultat. Den här klassen kan användas i stället för en delad variabel och kan resultera i en prestandaförbättring om det annars skulle uppstå mycket konkurrens om den delade variabeln.
concurrent_priority_queue-klass Klassen concurrent_priority_queue är en container som gör att flera trådar samtidigt kan push- och pop-objekt. Objekt visas i prioritetsordning där prioritet bestäms av en functor som anges som ett mallargument.
concurrent_queue-klass Klassen concurrent_queue är en sekvenscontainerklass som ger första-i-först-ut-åtkomst till dess element. Det möjliggör en begränsad uppsättning samtidighetssäkra åtgärder, till exempel push och try_pop.
Concurrent_unordered_map-Klass Klassen concurrent_unordered_map är en samtidighetssäker container som styr en sekvens med varierande längd av element av typen std::pair<const K, _Element_type>. Sekvensen representeras på ett sätt som möjliggör samtidighetssäker tillägg, elementåtkomst, iteratoråtkomst och iterator-bläddringar.
concurrent_unordered_multimap-klass Klassen concurrent_unordered_multimap är en samtidighetssäker container som styr en sekvens med varierande längd av element av typen std::pair<const K, _Element_type>. Sekvensen representeras på ett sätt som möjliggör samtidighetssäker tillägg, elementåtkomst, iteratoråtkomst och iterator-bläddringar.
concurrent_unordered_multiset-klass Klassen concurrent_unordered_multiset är en samtidighetssäker container som styr en sekvens med varierande längd av element av typen K. Sekvensen representeras på ett sätt som möjliggör samtidighetssäker tillägg, elementåtkomst, iteratoråtkomst och iterator-bläddringar.
Klassen concurrent_unordered_set Klassen concurrent_unordered_set är en samtidighetssäker container som styr en sekvens med varierande längd av element av typen K. Sekvensen representeras på ett sätt som möjliggör samtidighetssäker tillägg, elementåtkomst, iteratoråtkomst och iterator-bläddringar.
Concurrent_vector-Klass Klassen concurrent_vector är en sekvenscontainerklass som ger slumpmässig åtkomst till alla element. Det möjliggör samtidighetssäker tillägg, elementåtkomst, iteratoråtkomst och iterator-bläddringar.
Kontextklass Representerar en abstraktion för en körningskontext.
context_self_unblock-klass Den här klassen beskriver ett undantag som utlöses när Unblock metoden för ett Context objekt anropas från samma kontext. Detta indikerar ett försök av en viss kontext att avblockera sig själv.
context_unblock_unbalanced-klass Den här klassen beskriver ett undantag som utlöses när anrop till BlockUnblock och metoder för ett Context objekt inte är korrekt kopplade.
kritisk_sektion-klass Ett mutex som inte är reentrant och som uttryckligen är medvetet om Samtidighetskörning.
CurrentScheduler-klass Representerar en abstraktion för den aktuella schemaläggaren som är associerad med den anropande kontexten.
default_scheduler_exists-klass Den här klassen beskriver ett undantag som utlöses när Scheduler::SetDefaultSchedulerPolicy metoden anropas när en standardschemaläggare redan finns i processen.
händelseklass En manuell återställningshändelse som uttryckligen är medveten om Samtidighetskörning.
improper_lock-klass Den här klassen beskriver ett undantag som utlöses när ett lås hämtas felaktigt.
improper_scheduler_attach-klass Den här klassen beskriver ett undantag som utlöses när Attach metoden anropas på ett Scheduler objekt som redan är kopplat till den aktuella kontexten.
improper_scheduler_detach-klass Den här klassen beskriver ett undantag som utlöses när CurrentScheduler::Detach metoden anropas i en kontext som inte har kopplats till någon schemaläggare med hjälp Attach av metoden för ett Scheduler objekt.
improper_scheduler_reference-klass Den här klassen beskriver ett undantag som utlöses när Reference metoden anropas på ett Scheduler objekt som stängs av, från en kontext som inte ingår i schemaläggaren.
invalid_link_target-klass Den här klassen beskriver ett undantag som utlöses när link_target metoden för ett meddelandeblock anropas och meddelandeblocket inte kan länka till målet. Detta kan bero på att det överskrider antalet länkar som meddelandeblocket tillåts eller försöker länka ett specifikt mål två gånger till samma källa.
invalid_multiple_scheduling-klass Den här klassen beskriver ett undantag som utlöses när ett task_handle objekt schemaläggs flera gånger med hjälp run av metoden för ett task_group eller structured_task_group -objekt utan ett mellanliggande anrop till antingen wait metoderna eller run_and_wait .
invalid_operation-klass Den här klassen beskriver ett undantag som utlöses när en ogiltig åtgärd utförs som inte beskrivs mer korrekt av en annan undantagstyp som genereras av Concurrency Runtime.
invalid_oversubscribe_operation-klass Den här klassen beskriver ett undantag som utlöses när Context::Oversubscribe metoden anropas med parametern _BeginOversubscription inställd false på utan ett tidigare anrop till Context::Oversubscribe metoden med parametern _BeginOversubscription inställd på true.
invalid_scheduler_policy_key-klass Den här klassen beskriver ett undantag som utlöses när en ogiltig eller okänd nyckel skickas till en SchedulerPolicy objektkonstruktor, eller SetPolicyValue om metoden för ett SchedulerPolicy objekt skickas en nyckel som måste ändras med hjälp av andra metoder, till exempel SetConcurrencyLimits metoden.
invalid_scheduler_policy_thread_specification-klass Den här klassen beskriver ett undantag som utlöses när ett försök görs att ange samtidighetsgränserna för ett SchedulerPolicy objekt så att värdet för den MinConcurrency nyckeln är mindre än värdet för den MaxConcurrency nyckeln.
invalid_scheduler_policy_value-klass Den här klassen beskriver ett undantag som utlöses när en principnyckel för ett SchedulerPolicy objekt har angetts till ett ogiltigt värde för nyckeln.
ISource-klass Klassen ISource är gränssnittet för alla källblock. Källblock sprider meddelanden till ITarget block.
ITarget-klass Klassen ITarget är gränssnittet för alla målblock. Målblock förbrukar meddelanden som erbjuds dem via ISource block.
gå med i klass Ett join meddelandeblock är ett enmålsblock med flera källor som sorteras propagator_block och som kombinerar meddelanden av typen T från var och en av dess källor.
platsklass En abstraktion av en fysisk plats på maskinvaran.
message Class Det grundläggande meddelandekuvertet som innehåller datanyttolasten som skickas mellan meddelandeblock.
message_not_found-klass Den här klassen beskriver ett undantag som uppstår när ett meddelandeblock inte kan hitta ett begärt meddelande.
message_processor-klass Klassen message_processor är den abstrakta basklassen för bearbetning av message objekt. Det finns ingen garanti för ordningen på meddelandena.
missing_wait-klass Den här klassen beskriver ett undantag som utlöses när det fortfarande finns aktiviteter som schemalagts till ett objekt eller structured_task_group objekt task_group vid den tidpunkt då objektets destructor körs. Det här undantaget utlöses aldrig om destructor nås på grund av att en stack har inaktiverats till följd av ett undantag.
multi_link_registry-klass Objektet multi_link_registry är ett network_link_registry objekt som hanterar flera källblock eller flera målblock.
multitype_join-klass Ett multitype_join meddelandeblock är ett meddelandeblock med flera källor och ett enda mål som kombinerar meddelanden av olika typer från var och en av dess källor och erbjuder en tuppel av de kombinerade meddelandena till sina mål.
nested_scheduler_missing_detach-klass Den här klassen beskriver ett undantag som utlöses när Concurrency Runtime identifierar att du har försummat att anropa CurrentScheduler::Detach metoden i en kontext som är kopplad till en andra schemaläggare med hjälp Attach av -metoden för Scheduler objektet.
network_link_registry-klass Den network_link_registry abstrakta basklassen hanterar länkarna mellan käll- och målblock.
operation_timed_out-klass Den här klassen beskriver ett undantag som utlöses när en åtgärd har överskridits.
ordered_message_processor-klass En ordered_message_processor är en message_processor som gör att meddelandeblock kan bearbeta meddelanden i den ordning de togs emot.
overwrite_buffer class Ett overwrite_buffer meddelandeblock är ett flermålsblock med flera källor som kan propagator_block lagra ett enda meddelande i taget. Nya meddelanden skriver över tidigare hållna meddelanden.
progress_reporter-klass Förloppsreporterklassen tillåter rapportering av förloppsmeddelanden av en viss typ. Varje progress_reporter objekt är bundet till en viss asynkron åtgärd eller åtgärd.
propagator_block-klass Klassen propagator_block är en abstrakt basklass för meddelandeblock som både är en källa och ett mål. Den kombinerar funktionerna i både klasserna source_block och target_block .
reader_writer_lock-klass Ett köbaserat skrivar-skrivarlås med skrivarinställningar som endast snurrar lokalt. Låset ger först in - först ut (FIFO) åtkomst till författare och svälter läsare under en kontinuerlig belastning av författare.
ScheduleGroup-klass Representerar en abstraktion för en schemagrupp. Schemagrupper organiserar en uppsättning relaterade arbeten som drar nytta av att schemaläggas nära varandra antingen tillfälligt, genom att utföra en annan uppgift i samma grupp innan de flyttas till en annan grupp, eller rumsligt, genom att köra flera objekt i samma grupp på samma NUMA-nod eller fysisk socket.
Scheduler-klass Representerar en abstraktion för en Concurrency Runtime-schemaläggare.
scheduler_not_attached-klass Den här klassen beskriver ett undantag som utlöses när en åtgärd utförs som kräver att en schemaläggare kopplas till den aktuella kontexten och en inte är det.
scheduler_resource_allocation_error-klass Den här klassen beskriver ett undantag som genereras på grund av att det inte gick att hämta en kritisk resurs i Concurrency Runtime.
scheduler_worker_creation_error-klass Den här klassen beskriver ett undantag som utlöses på grund av att det inte gick att skapa en arbetskörningskontext i Concurrency Runtime.
SchedulerPolicy-klass Klassen SchedulerPolicy innehåller en uppsättning nyckel/värde-par, ett för varje principelement, som styr beteendet för en scheduler-instans.
SimplePartitioner-klass Klassen simple_partitioner representerar en statisk partitionering av intervallet som itereras över av parallel_for. Partitioneraren delar upp intervallet i segment så att varje segment har minst det antal iterationer som anges av segmentstorleken.
SingleAssignment-klass Ett single_assignment meddelandeblock är ett flermålsblock med flera källor som kan propagator_block lagra en enda skrivning en gång message.
single_link_registry-klass Objektet single_link_registry är ett network_link_registry objekt som endast hanterar en enda källa eller ett målblock.
source_block-klass Klassen source_block är en abstrakt basklass för endast källblock. Klassen innehåller grundläggande funktioner för länkhantering samt vanliga felkontroller.
source_link_manager-klass Objektet source_link_manager hanterar nätverkslänkar för meddelandeblock till ISource block.
statisk_partitionerar-klass Klassen static_partitioner representerar en statisk partitionering av intervallet som itereras över av parallel_for. Partitioneraren delar upp intervallet i så många segment som det finns arbetare tillgängliga för den underliggande schemaläggaren.
structured_task_group-klass Klassen structured_task_group representerar en mycket strukturerad samling parallella arbeten. Du kan köa enskilda parallella uppgifter till ett structured_task_group objekt som används task_handle och vänta tills de har slutförts eller avbryta aktivitetsgruppen innan de har slutfört körningen, vilket avbryter alla aktiviteter som inte har påbörjat körningen.
target_block-klass Klassen target_block är en abstrakt basklass som tillhandahåller grundläggande funktioner för länkhantering och felkontroll för endast målblock.
Task-klass (Concurrency Runtime) Klassen Parallel Patterns Library (PPL). task Ett task objekt representerar arbete som kan köras asynkront och samtidigt med andra uppgifter och parallellt arbete som skapas av parallella algoritmer i Samtidighetskörning. Det ger ett resultat av typen _ResultType vid slutförande. Uppgifter av typen task<void> ger inget resultat. En uppgift kan vänta på och avbrytas oberoende av andra uppgifter. Den kan också bestå av andra uppgifter med hjälp av fortsättningsmönster(then) och kopplingsmönster(when_all) och choice(when_any).
task_canceled-klass Den här klassen beskriver ett undantag som utlöses av PPL-aktivitetsskiktet för att tvinga den aktuella aktiviteten att avbrytas. Den genereras också av metoden för aktiviteten för en avbruten get() aktivitet.
task_completion_event class Med task_completion_event klassen kan du fördröja körningen av en aktivitet tills ett villkor är uppfyllt eller starta en aktivitet som svar på en extern händelse.
task_continuation_context-klass Med task_continuation_context klassen kan du ange var du vill att en fortsättning ska köras. Det är bara användbart att använda den här klassen från en UWP-app. För icke-Windows Runtime-appar bestäms aktivitetsfortsättningens körningskontext av körningen och kan inte konfigureras.
task_group-klass Klassen task_group representerar en samling parallella arbeten som kan väntas på eller avbrytas.
task_handle-klass Klassen task_handle representerar ett enskilt parallellt arbetsobjekt. Den kapslar in instruktionerna och de data som krävs för att utföra ett arbete.
task_options-klass (Samtidighetskörning) Representerar de tillåtna alternativen för att skapa en uppgift
Timerklass Ett timer meddelandeblock är ett enda mål source_block som kan skicka ett meddelande till målet efter att en angiven tidsperiod har förflutit eller med specifika intervall.
transformeringsklass Ett transformer meddelandeblock är ett enmålsblock med flera källor som propagator_block kan acceptera meddelanden av en typ och som kan lagra ett obundet antal meddelanden av en annan typ.
unbounded_buffer-klass Ett unbounded_buffer meddelandeblock är ett flermålsblock med flera källor som kan propagator_block lagra ett obundet antal meddelanden.
unsupported_os-klass Den här klassen beskriver ett undantag som utlöses när ett operativsystem som inte stöds används.

Strukturer

Namn Beskrivning
DispatchState-struktur Strukturen DispatchState används för att överföra tillstånd till IExecutionContext::Dispatch metoden. Den beskriver de omständigheter under vilka Dispatch metoden anropas i ett IExecutionContext gränssnitt.
IExecutionContext-struktur Ett gränssnitt till en körningskontext som kan köras på en viss virtuell processor och kopplas till en samarbetskontext.
IExecutionResource-struktur En abstraktion för en maskinvarutråd.
IResourceManager-struktur Ett gränssnitt till Concurrency Runtimes Resource Manager. Det här är gränssnittet som schemaläggare kommunicerar med Resource Manager med.
IScheduler-struktur Ett gränssnitt till en abstraktion av en arbetsschemaläggare. Concurrency Runtimes Resource Manager använder det här gränssnittet för att kommunicera med arbetsschemaläggare.
ISchedulerProxy-struktur Gränssnittet som schemaläggare kommunicerar med Concurrency Runtimes Resource Manager för att förhandla om resursallokering.
IThreadProxy-struktur En abstraktion för en körningstråd. Beroende på SchedulerType principnyckeln för den schemaläggare du skapar ger Resource Manager dig en trådproxy som antingen backas upp av en vanlig Win32-tråd eller en ums-tråd (user-mode schedulable). UMS-trådar stöds på 64-bitars operativsystem med version Windows 7 och senare.
ITopologyExecutionResource-struktur Ett gränssnitt till en körningsresurs som definierats av Resource Manager.
ITopologyNode-struktur Ett gränssnitt till en topologinod som definierats av Resource Manager. En nod innehåller en eller flera körningsresurser.
Struktur för IUMSCompletionList Representerar en UMS-slutförandelista. När en UMS-tråd blockeras skickas schemaläggarens avsedda schemaläggningskontext för att fatta ett beslut om vad som ska schemaläggas på den underliggande virtuella processorroten medan den ursprungliga tråden blockeras. När den ursprungliga tråden avblockeras köar operativsystemet den till slutförandelistan som är tillgänglig via det här gränssnittet. Schemaläggaren kan köra frågor mot slutförandelistan i den avsedda schemaläggningskontexten eller någon annan plats där den söker efter arbete.
IUMSScheduler-struktur Ett gränssnitt till en abstraktion av en arbetsschemaläggare som vill att Concurrency Runtimes Resource Manager ska ge den ums-trådar (user-mode schedulable). Resource Manager använder det här gränssnittet för att kommunicera med UMS-trådschemaläggare. Gränssnittet IUMSScheduler ärver från IScheduler gränssnittet.
IUMSThreadProxy-struktur En abstraktion för en körningstråd. Om du vill att schemaläggaren ska beviljas ums-trådar (user-mode schedulable) anger du värdet för scheduler-principelementet SchedulerKind till UmsThreadDefaultoch implementerar IUMSScheduler gränssnittet. UMS-trådar stöds endast på 64-bitars operativsystem med version Windows 7 och senare.
IUMSUnblockNotification-struktur Representerar ett meddelande från Resource Manager om att en trådproxy som blockerade och utlöste en återgång till schemaläggarens avsedda schemaläggningskontext har avblockerats och är redo att schemaläggas. Det här gränssnittet är ogiltigt när trådproxyns associerade körningskontext, som returneras från GetContext metoden, har schemalagts om.
IVirtualProcessorRoot-struktur En abstraktion för en maskinvarutråd som en trådproxy kan köras på.
scheduler_interface struktur Scheduler-gränssnitt
scheduler_ptr structure (Concurrency Runtime) Representerar en pekare till en schemaläggare. Den här klassen finns för att tillåta specifikationen av en delad livslängd med hjälp av shared_ptr eller bara en vanlig referens med hjälp av råpekare.

Uppräkningar

Namn Beskrivning
agent_status Giltiga tillstånd för en agent.
Agents_EventType De typer av händelser som kan spåras med hjälp av spårningsfunktionen som erbjuds av agentbiblioteket
ConcRT_EventType De typer av händelser som kan spåras med hjälp av spårningsfunktionen som erbjuds av Concurrency Runtime.
Concrt_TraceFlags Spåra flaggor för händelsetyperna
CriticalRegionType Typen av kritisk region som en kontext finns i.
DynamicProgressFeedbackType Används av DynamicProgressFeedback principen för att beskriva om resurser för schemaläggaren ska balanseras om enligt statistisk information som samlats in från schemaläggaren eller endast baserat på virtuella processorer som går in och ut ur inaktivt tillstånd genom anrop till Activate metoderna och Deactivate i IVirtualProcessorRoot gränssnittet. Mer information om tillgängliga scheduler-principer finns i PolicyElementKey.
join_type Typen av meddelandeblock join .
message_status Giltiga svar för ett erbjudande om ett message objekt till ett block.
PolicyElementKey Principnycklar som beskriver aspekter av scheduler-beteende. Varje principelement beskrivs av ett nyckel/värde-par. Mer information om scheduler-principer och deras inverkan på schemaläggare finns i Schemaläggaren.
SchedulerType Används av SchedulerKind principen för att beskriva typen av trådar som schemaläggaren ska använda för underliggande körningskontexter. Mer information om tillgängliga scheduler-principer finns i PolicyElementKey.
SchedulingProtocolType Används av SchedulingProtocol principen för att beskriva vilken schemaläggningsalgoritm som ska användas för schemaläggaren. Mer information om tillgängliga scheduler-principer finns i PolicyElementKey.
SwitchingProxyState Används för att ange tillståndet som en trådproxy är i, när den kör en samarbetskontextväxling till en annan trådproxy.
task_group_status Beskriver körningsstatusen för ett eller structured_task_group -task_groupobjekt. Ett värde av den här typen returneras med flera metoder som väntar på att aktiviteter som schemalagts till en aktivitetsgrupp ska slutföras.
WinRTInitializationType Används av WinRTInitialization principen för att beskriva om och hur Windows Runtime ska initieras på scheduler-trådar för ett program som körs på operativsystem med version Windows 8 eller senare. Mer information om tillgängliga scheduler-principer finns i PolicyElementKey.

Funktionen

Namn Beskrivning
Alloc-funktion Allokerar ett block med minne av den storlek som anges från concurrency Runtime Caching Suballocator.
asendFunction Överbelastad. En asynkron sändningsåtgärd som schemalägger en uppgift för att sprida data till målblocket.
cancel_current_task funktion Avbryter den uppgift som körs just nu. Den här funktionen kan anropas inifrån en aktivitets brödtext för att avbryta körningen av aktiviteten och få den att ange canceled tillstånd.

Det är inte ett scenario som stöds för att anropa den här funktionen om du inte befinner dig i brödtexten i en task. Om du gör det resulterar det i odefinierat beteende, till exempel en krasch eller att programmet inte svarar.
create_async funktion Skapar en asynkron Windows Runtime-konstruktion baserat på en lambda- eller funktionsobjekt från användaren. Returtypen för create_async är antingen IAsyncAction^, IAsyncActionWithProgress<TProgress>^, IAsyncOperation<TResult>^eller IAsyncOperationWithProgress<TResult, TProgress>^ baserat på signaturen för lambda som skickas till metoden.
create_task funktion Överbelastad. Skapar en PPL-uppgift objekt. create_task kan användas var som helst där du skulle ha använt en aktivitetskonstruktor. Det tillhandahålls främst för enkelhetens skull, eftersom det tillåter användning av nyckelordet auto när uppgifter skapas.
CreateResourceManager-funktion Returnerar ett gränssnitt som representerar singleton-instansen av Concurrency Runtimes Resource Manager. Resource Manager ansvarar för att tilldela resurser till schemaläggare som vill samarbeta med varandra.
DisableTracing-funktion Inaktiverar spårning i Concurrency Runtime. Den här funktionen är inaktuell eftersom ETW-spårning avregistreras som standard.
EnableTracing-funktion Aktiverar spårning i Concurrency Runtime. Den här funktionen är inaktuell eftersom ETW-spårning nu är aktiverat som standard.
Kostnadsfri funktion Frigör ett minnesblock som tidigare allokerats av metoden Alloc till concurrency Runtime Caching Suballocator.
get_ambient_scheduler funktion (Samtidighetskörning)
Funktionen GetExecutionContextId Returnerar en unik identifierare som kan tilldelas till en körningskontext som implementerar IExecutionContext-gränssnittet.
GetOSVersion-funktion Returnerar operativsystemversionen.
GetProcessorCount-funktion Returnerar antalet maskinvarutrådar i det underliggande systemet.
GetProcessorNodeCount-funktion Returnerar antalet NUMA-noder eller processorpaket i det underliggande systemet.
GetSchedulerId-funktion Returnerar en unik identifierare som kan tilldelas till en schemaläggare som implementerar IScheduler-gränssnittet.
interruption_point funktion Skapar en avbrottspunkt för annullering. Om en annullering pågår i kontexten där den här funktionen anropas utlöser detta ett internt undantag som avbryter körningen av det parallella arbete som körs just nu. Om annulleringen inte pågår gör funktionen ingenting.
is_current_task_group_canceling funktion Returnerar en indikation på om den aktivitetsgrupp som för närvarande körs infogat i den aktuella kontexten befinner sig mitt i en aktiv annullering (eller kommer att vara inom kort). Observera att om det inte finns någon aktivitetsgrupp som körs infogat i den aktuella kontexten returneras false.
make_choice funktion Överbelastad. Skapar ett choice meddelandeblock från en valfri Scheduler eller ScheduleGroup och två eller flera indatakällor.
make_greedy_join funktion Överbelastad. Skapar ett greedy multitype_join meddelandeblock från en valfri Scheduler eller ScheduleGroup och två eller flera indatakällor.
make_join funktion Överbelastad. Skapar ett non_greedy multitype_join meddelandeblock från en valfri Scheduler eller ScheduleGroup och två eller flera indatakällor.
make_task funktion En fabriksmetod för att skapa ett task_handle objekt.
parallel_buffered_sort funktion Överbelastad. Ordnar elementen i ett angivet intervall i en icke-fallande ordning, eller enligt ett ordningsvillkor som anges av ett binärt predikat parallellt. Den här funktionen liknar semantiskt std::sort eftersom den är en jämförelsebaserad, instabil sortering på plats förutom att den behöver O(n) ytterligare utrymme och kräver standardinitiering för de element som sorteras.
parallel_for funktion Överbelastad. parallel_for itererar över ett antal index och kör en användartillämpad funktion vid varje iteration parallellt.
parallel_for_each funktion Överbelastad. parallel_for_each tillämpar en angiven funktion på varje element inom ett intervall parallellt. Den är semantiskt likvärdig med funktionen for_each i std namnrymd, förutom att iteration över elementen utförs parallellt och iterationens ordning är ospecificerad. Argumentet _Func måste ha stöd för en funktionsanropsoperator för formuläret operator()(T) där parametern T är objekttypen för containern som itereras över.
parallel_invoke funktion Överbelastad. Kör funktionsobjekten som anges som parametrar parallellt och blockerar tills de har körts klart. Varje funktionsobjekt kan vara ett lambda-uttryck, en pekare som ska fungera eller ett objekt som stöder funktionsanropsoperatorn med signaturen void operator()().
parallel_radixsort funktion Överbelastad. Ordnar element i ett angivet intervall i en icke fallande ordning med hjälp av en radixsorteringsalgoritm. Det här är en stabil sorteringsfunktion som kräver en projektionsfunktion som kan projicera element som ska sorteras i osignerade heltalsliknande nycklar. Standardinitiering krävs för de element som sorteras.
parallel_reduce funktion Överbelastad. Beräknar summan av alla element i ett angivet intervall genom att beräkna successiva partiella summor, eller beräknar resultatet av efterföljande partiella resultat som på liknande sätt erhålls från att använda en angiven binär åtgärd förutom summa, parallellt. parallel_reduce är semantiskt likt std::accumulate, förutom att den kräver att den binära åtgärden är associativ och kräver ett identitetsvärde i stället för ett initialt värde.
parallel_sort funktion Överbelastad. Ordnar elementen i ett angivet intervall i en icke-fallande ordning, eller enligt ett ordningsvillkor som anges av ett binärt predikat parallellt. Den här funktionen liknar semantiskt std::sort eftersom den är en jämförelsebaserad, instabil sortering på plats.
parallel_transform funktion Överbelastad. Tillämpar ett angivet funktionsobjekt på varje element i ett källintervall, eller på ett par element från två källintervall, och kopierar returvärdena för funktionsobjektet till ett målintervall parallellt. Den här funktionen motsvarar semantiskt std::transform.
ta emot funktion Överbelastad. En allmän implementering av mottagningen, vilket gör att en kontext kan vänta på data från exakt en källa och filtrera de värden som accepteras.
run_with_cancellation_token funktion Kör ett funktionsobjekt omedelbart och synkront i kontexten för en viss annulleringstoken.
send-funktion Överbelastad. En synkron sändningsåtgärd som väntar tills målet antingen accepterar eller avvisar meddelandet.
set_ambient_scheduler funktion (Samtidighetskörning)
set_task_execution_resources funktion Överbelastad. Begränsar körningsresurserna som används av concurrency Runtime interna arbetstrådar till den angivna tillhörighetsuppsättningen.

Det är giltigt att anropa den här metoden endast innan Resource Manager har skapats eller mellan två Resource Manager-livslängder. Det kan anropas flera gånger så länge Resource Manager inte finns vid tidpunkten för anropet. När en tillhörighetsgräns har angetts gäller den tills nästa giltiga anrop till metoden set_task_execution_resources.

Den angivna tillhörighetsmasken behöver inte vara en delmängd av processtillhörighetsmasken. Processtillhörigheten uppdateras om det behövs.
växla funktion Utbyter elementen i två concurrent_vector objekt.
task_from_exception funktion (Samtidighetskörning)
task_from_result funktion (Samtidighetskörning)
Trace_agents_register_name funktion Associerar det angivna namnet till meddelandeblocket eller agenten i ETW-spårningen.
try_receive-funktion Överbelastad. En allmän try-receive-implementering som gör att en kontext kan söka efter data från exakt en källa och filtrera de värden som accepteras. Om data inte är klara returnerar metoden false.
väntefunktion Pausar den aktuella kontexten under en angiven tidsperiod.
when_all funktion Skapar en uppgift som slutförs när alla uppgifter som anges som argument har slutförts.
when_any Funktion Överbelastad. Skapar en uppgift som slutförs när någon av de uppgifter som anges som argument har slutförts.

Operatörer

Namn Beskrivning
operator!= Testar om concurrent_vector objektet till vänster om operatorn inte är lika med concurrent_vector objektet till höger.
operator & Överbelastad. Skapar en uppgift som slutförs när båda aktiviteterna som anges som argument slutförs.
operator|| Överbelastad. Skapar en uppgift som slutförs när någon av de uppgifter som anges som argument slutförs.
operatör< Testar om concurrent_vector objektet till vänster om operatorn är mindre än concurrent_vector objektet till höger.
operator<= Testar om concurrent_vector objektet till vänster om operatorn är mindre än eller lika med concurrent_vector objektet till höger.
operator== Testar om concurrent_vector objektet till vänster om operatorn är lika concurrent_vector med objektet till höger.
operatör> Testar om concurrent_vector objektet till vänster om operatorn är större än concurrent_vector objektet till höger.
operator>= Testar om concurrent_vector objektet till vänster om operatorn är större än eller lika med concurrent_vector objektet till höger.

Konstanter

Namn Beskrivning
AgentEventGuid Ett kategori-GUID ({B9B5B78C-0713-4898-A21A-C67949DCED07}) som beskriver ETW-händelser som utlöstes av agentbiblioteket i Concurrency Runtime.
ChoreEventGuid Ett kategori-GUID som beskriver ETW-händelser som utlösts av Concurrency Runtime som är direkt relaterade till sysslor eller uppgifter.
ConcRT_ProviderGuid ETW-providerns GUID för Concurrency Runtime.
CONCRT_RM_VERSION_1 Anger stöd för Resource Manager-gränssnittet som definierats i Visual Studio 2010.
ConcRTEventGuid Ett kategori-GUID som beskriver ETW-händelser som utlösts av Concurrency Runtime som inte beskrivs mer specifikt av en annan kategori.
ContextEventGuid Ett kategori-GUID som beskriver ETW-händelser som utlösts av Concurrency Runtime som är direkt relaterade till kontexter.
COOPERATIVE_TIMEOUT_INFINITE Värde som anger att en väntetid aldrig ska överskrida tidsgränsen.
COOPERATIVE_WAIT_TIMEOUT Värde som anger att tidsgränsen för väntetiden var överskriden.
INHERIT_THREAD_PRIORITY Specialvärde för principnyckeln ContextPriority som anger att trådprioriteten för alla kontexter i schemaläggaren ska vara samma som för tråden som skapade schemaläggaren.
LockEventGuid Ett kategori-GUID som beskriver ETW-händelser som utlösts av Concurrency Runtime som är direkt relaterade till lås.
MaxExecutionResources Specialvärde för principnycklarna MinConcurrency och MaxConcurrency. Standardvärdet är antalet maskinvarutrådar på datorn i avsaknad av andra begränsningar.
PPLParallelForeachEventGuid Ett kategori-GUID som beskriver ETW-händelser som utlöses av Concurrency Runtime som är direkt relaterade till användningen av parallel_for_each funktionen.
PPLParallelForEventGuid Ett kategori-GUID som beskriver ETW-händelser som utlöses av Concurrency Runtime som är direkt relaterade till användningen av parallel_for funktionen.
PPLParallelInvokeEventGuid Ett kategori-GUID som beskriver ETW-händelser som utlöses av Concurrency Runtime som är direkt relaterade till användningen av parallel_invoke funktionen.
ResourceManagerEventGuid Ett kategori-GUID som beskriver ETW-händelser som utlösts av Concurrency Runtime som är direkt relaterade till resurshanteraren.
ScheduleGroupEventGuid Ett kategori-GUID som beskriver ETW-händelser som utlösts av Concurrency Runtime som är direkt relaterade till schemagrupper.
SchedulerEventGuid Ett kategori-GUID som beskriver ETW-händelser som utlösts av Concurrency Runtime som är direkt relaterade till schemaläggaraktivitet.
VirtualProcessorEventGuid Ett kategori-GUID som beskriver ETW-händelser som utlösts av Concurrency Runtime som är direkt relaterade till virtuella processorer.

Kravspecifikation

Rubrik: 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

Se även

Referens