Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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