concurrency – obor názvů
Obor názvů Concurrency poskytuje třídy a funkce, které umožňují přístup k modulu Concurrency Runtime, souběžnému programovacímu rámci pro jazyk C++.Další informace naleznete v tématu Concurrency Runtime.
namespace concurrency;
Členy
Obory názvů
Název |
Description |
---|---|
concurrency::extensibility Namespace |
Typedefs
Název |
Description |
---|---|
runtime_object_identity |
Každá instance zprávy má identitu, která ji při klonování následuje a je předávána mezi komponentami zasílání zpráv.Nemůže být adresou objektu zprávy. |
task_status |
Typ, který představuje konečný stav úkolu.Platné hodnoty jsou completed a canceled. |
TaskProc |
Elementární abstrakce pro daný úkol definována jako void (__cdecl * TaskProc)(void *).Člen TaskProc je volán, aby vyvolal tělo úkolu. |
TaskProc_t |
Elementární abstrakce pro daný úkol definována jako void (__cdecl * TaskProc_t)(void *).Člen TaskProc je volán, aby vyvolal tělo úkolu. |
Třídy
Název |
Description |
---|---|
Třída affinity_partitioner je podobná třídě static_partitioner, ale vylepšuje afinitu mezipaměti výběrem mapován podrozsahů na pracovní vlákna.To může podstatně zlepšit výkon při opětovném provedení smyčky nad stejnou sadou dat, pokud se tato data vejdou do mezipaměti.Povšimněte si, že stejný objekt affinity_partitioner musí být použit s následujícími iteracemi paralelní smyčky, která je spuštěna nad konkrétní sadou dat, aby mohla získat výhodu z umístění dat. |
|
Třída určená k použití jako základní třída pro všechny nezávislé agenty.Je použita pro skrytí stavu pro ostatní agenty a interakci pomocí předávání zpráv. |
|
Třída auto_partitioner reprezentuje výchozí použití způsobů parallel_for, parallel_for_each a parallel_transform pro rozdělení rozsahu, přes který jsou iterovány.Tento způsob rozdělení využívá kradení rozsahu pro vyrovnávání zatížení a také zrušení na iteraci. |
|
Tato třída popisuje výjimku vyvolanou, když je bloku zpráv předán ukazatel na cíl, který je pro prováděnou operaci neplatný. |
|
Blok zpráv call je setříděný blok target_block s více zdroji, který vyvolává zadanou funkci při přijetí zprávy. |
|
Třída cancellation_token představuje možnost zjistit, zda některé operace požadují zrušení.Daný token lze přidružit k task_group, structured_task_group, nebo task a poskytnout implicitní zrušení.Je možné také dotazování na zrušení nebo registrace zpětného volání pro případ zrušení přidružené třídy cancellation_token_source. |
|
Třída cancellation_token_registration představuje zpětné volání upozornění z cancellation_token.Když metoda register na cancellation_token slouží k přijímání oznámení tom, kdy kde zrušení dojde, objekt cancellation_token_registration je vrácen jako popisovač pro zpětné volání tak, aby volající mohl požadovat konkrétní zpětné volání, které již nebude provedeno pomocí metody deregister. |
|
Třída cancellation_token_source představuje schopnost zrušit zrušitelnou operaci. |
|
Blok zpráv choice je blok s více zdroji a jedním cílem, který reprezentuje interakci toku řízení se sadou zdrojů.Blok výběru počká, až kterýkoli ze zdrojů vyprodukuje zprávu a následně bude propagovat index tohoto zdroje. |
|
Objekt combinable<T> je určen k poskytování privátních kopií dat pro vlákna, aby mohlo dojít k dílčím výpočtům na místním vlákně bez použití zámku během zpracování paralelním algoritmem.Na konci paralelní operace mohou být privátní dílčí výpočty vláken spojeny do konečného výsledku.Tuto třídu lze použít místo sdílené proměnné a může způsobit zvýšení výkonu, pokud by vlákna o sdílenou proměnnou hodně soupeřila. |
|
Třída concurrent_priority_queue je kontejner, který umožňuje, aby více vláken souběžně mohlo přistupovat k položkám pomocí push a pop.Položky jsou odebírány v pořadí, kdy je priorita určena pomocí funktoru dodaném jako argument šablony. |
|
Třída concurrent_queue je třída sekvenčního kontejneru, který umožňuje přístup first-in a first-out ke svým prvkům.Umožňuje omezenou sadu operací bezpečných pro souběžný přístup, jako jsou například push a try_pop. |
|
Třída concurrent_unordered_map je kontejner bezpečné souběžnosti, který řídí různé délky sekvence elementů typu std::pair<const _Key_type, _Element_type>.Sekvence je reprezentována způsobem, který umožňuje připojení bezpečné na souběžnosti, přístup k prvkům, přístup k iterátoru a operace procházení iterátoru. |
|
Třída concurrent_unordered_multimap je kontejner bezpečné souběžnosti, který řídí různé délky sekvence elementů typu std::pair<const _Key_type, _Element_type>.Sekvence je reprezentována způsobem, který umožňuje připojení bezpečné na souběžnosti, přístup k prvkům, přístup k iterátoru a operace procházení iterátoru. |
|
Třída concurrent_unordered_multiset je kontejner bezpečné souběžnosti, který řídí různé délky sekvence elementů typu Klíč.Sekvence je reprezentována způsobem, který umožňuje připojení bezpečné na souběžnosti, přístup k prvkům, přístup k iterátoru a operace procházení iterátoru. |
|
Třída concurrent_unordered_set je kontejner bezpečné souběžnosti, který řídí různé délky sekvence elementů typu Klíč.Sekvence je reprezentována způsobem, který umožňuje připojení bezpečné na souběžnosti, přístup k prvkům, přístup k iterátoru a operace procházení iterátoru. |
|
Třída concurrent_vector je třída sekvenčního kontejneru, který umožňuje náhodný přístup k libovolnému prvku.Umožňuje operace bezpečné souběžnosti pro přidání, přístup k prvkům, přístup iterátorem a průchod iterátorem. |
|
Představuje abstrakci pro kontext spuštění. |
|
Tato třída popisuje výjimku vyvolanou, když je metoda Unblock objektu Context zavolána ze stejného kontextu.To může indikovat pokus daného kontextu se odblokovat. |
|
Tato třída popisuje výjimku vyvolanou, pokud nejsou volání metod Block a Unblock objektu Context správně spárována. |
|
Mutex bez opětovného přístupu, který si je explicitně vědom souběžnosti modulu runtime. |
|
Představuje abstrakci pro aktuální plánovač přidružený k volajícímu kontextu. |
|
Tato třída popisuje výjimku vyvolanou, když je volána metoda Scheduler::SetDefaultSchedulerPolicy a zároveň výchozí plánovač již v rámci procesu existuje. |
|
Ruční obnovení události, která si je explicitně vědoma souběžnosti modulu runtime. |
|
Tato třída popisuje výjimku se vyvolanou při nesprávném získání zámku. |
|
Tato třída popisuje výjimku vyvolanou, když je volána metoda Attach na objekt Scheduler, který je již připojen k aktuálnímu kontextu. |
|
Tato třída popisuje výjimku vyvolanou, když je zavolána metoda CurrentScheduler::Detach na kontext, který nebyl připojen k jakémukoli plánovači pomocí metody Attach objektu Scheduler. |
|
Tato třída popisuje výjimku vyvolanou, když je metoda Reference zavolána na objekt Scheduler, který je právě vypínán z kontextu, který není součástí plánovače. |
|
Tato třída popisuje výjimku vyvolanou, když je zavolána metoda link_target bloku zpráv a blok zpráv se není schopen napojit na cíl.To může být důsledkem překročení počtu odkazů, který je bloku zpráv povolen, nebo pokusu o napojení konkrétního cíle dvakrát na stejný zdroj. |
|
Tato třída popisuje výjimku vyvolanou, když je objekt task_handle naplánován vícekrát pomocí metody run objektu task_group nebo structured_task_group bez intervenujícího volání metody wait nebo run_and_wait. |
|
Tato třída popisuje výjimku vyvolanou při provádění neplatné operace, která není přesněji popsána jako jiný typ výjimky vyvolané souběžným modulem Runtime. |
|
Tato třída popisuje výjimku vyvolanou, když je metoda Context::Oversubscribe s parametrem _BeginOversubscription nastaveným na false bez předchozího volání metody Context::Oversubscribe s parametrem _BeginOversubscription nastaveným na true. |
|
Tato třída popisuje výjimku vyvolanou, když je konstruktoru objektu SchedulerPolicy předán neplatný nebo neznámý klíč, nebo pokud je metodě SetPolicyValue objektu SchedulerPolicy předán klíč, který musí být změněn jinými prostředky, například metodou SetConcurrencyLimits. |
|
Tato třída popisuje výjimku vyvolanou při pokusu o nastavení limitů souběžnosti objektu SchedulerPolicy, jako je například nastavení klíče MinConcurrency na hodnotu menší než je hodnota klíče MaxConcurrency. |
|
Tato třída popisuje výjimku vyvolanou, když je klíč zásady objektu SchedulerPolicy nastaven na neplatnou hodnotu klíče. |
|
Třída ISource je rozhraním pro všechny zdrojové bloky.Zdrojové bloky propagují zprávy blokům ITarget. |
|
Třída ITarget je rozhraním pro všechny cílové bloky.Cílové bloky zpracovávají zprávy jim poskytnuté bloky ISource. |
|
Blok zpráv join je setříděný blok s jedním cílem a více zdroji propagator_block, který kombinuje více zpráv typu _Type z každého jeho zdroje. |
|
Abstrakce fyzického umístění v hardware. |
|
Obálka základní zprávy obsahující datové zprávy předávané mezi bloky zpráv. |
|
Tato třída popisuje výjimku vyvolanou, když není blok zpráv schopen najít požadovanou zprávu. |
|
Třída message_processor je abstraktní základní třídou pro zpracování objektů message.Neexistuje žádná záruka, že budou zprávy seřazeny. |
|
Tato třída popisuje výjimku vyvolanou, pokud existují úkoly, které jsou stále v objektu task_group nebo structured_task_group naplánovány, když je prováděn destruktor objektu.Tato výjimka nebude nikdy vyvolána, pokud bude dosaženo destruktoru, jelikož v důsledku výjimky dojde k uvolnění zásobníku. |
|
Objekt multi_link_registry je objektem network_link_registry, který spravuje více bloků zdrojů nebo více cílových bloků. |
|
Blok zpráv multitype_join je blok zpráv s více zdroji a jedním cílem, který dohromady kombinuje zprávy různých typů z každého ze svých zdrojů a nabízí cíli n-tici kombinovaných zpráv. |
|
Tato třída popisuje výjimku vyvolanou, když modul Runtime souběžnosti zjistí, že bylo opomenuto volání metody CurrentScheduler::Detach v kontextu, který je připojen k druhému plánovači pomocí metody Attach objektu Scheduler. |
|
Abstraktní základní třída network_link_registry spravuje propojení mezi zdrojovými a cílovými bloky. |
|
Tato třída popisuje výjimku vyvolanou při vypršení operaci. |
|
Objekt ordered_message_processor je objektem message_processor, který umožňuje blokům zpráv zpracovat zprávy v pořadí v jakém byly přijaty. |
|
Blok zpráv overwrite_buffer je setříděný blok propagator_block s více cíli a více zdroji schopný ukládat jednu zprávu najednou.Nové zprávy přepisují dříve držené. |
|
Třída zpravodaj pokroku umožňuje vykazování průběhu oznámení určitého typu.Každý objekt progress_reporter je vázán na konkrétní asynchronní akci nebo operaci. |
|
Třída propagator_block je abstraktní základní třídou pro bloky zpráv, které jsou zdrojem i cílem.Kombinuje funkce třídy source_block a target_block. |
|
Zámek pro čtení i zápis založený na frontě s preferencí zápisu s pouze lokálním otáčením.Zámek uděluje FIFO (first in - first out) přístup k zapisovatelům a odebírá čtenáře při nepřetržitém načítání zapisovatelů. |
|
Představuje abstrakci pro skupinu plánování.Skupiny plánování organizují sadu souvisejících prací, které mají výhody z toho, že jsou plánovány blízko sebe, buď časově, prováděním jiné úlohy ve stejné skupině před přesunutím do jiné skupiny, nebo prostorově, prováděním více položek ve stejné skupině na stejném uzlu NUMA nebo fyzickém soketu. |
|
Představuje abstrakci pro plánovač modulu Runtime souběžnosti. |
|
Tato třída popisuje výjimku vyvolanou, když je operace provedena, což vyžaduje, aby byl jeden plánovač připojen k aktuálnímu kontextu a jeden nebyl. |
|
Tato třída popisuje výjimku z důvodu nezdařeného získání důležitého zdroje v modulu Runtime souběžnosti. |
|
Tato třída popisuje výjimku vyvolanou, protože se nepodařilo vytvořit kontext spuštění pracovníka v modulu Runtime souběžnosti. |
|
Třída SchedulerPolicy obsahuje sadu párů klíč/hodnota, jeden pro každý prvek zásad, který řídí chování instance plánovače. |
|
Třída simple_partitioner představuje statické rozdělení rozsahu iterovaného pomocí parallel_for.Rozdělovač rozdělí rozsah na bloky taky, aby každý blok měl alespoň tolik iterací, kolik je zadáno velikostí bloku. |
|
Blok zpráv single_assignment je setříděný blok propagator_block s více cíli a více zdroji schopný uložit jeden objekt message s jedním zápisem. |
|
Objekt single_link_registry je objekt network_link_registry, který spravuje pouze jeden zdrojový nebo cílový blok. |
|
Třída source_block je abstraktní základní třídou pro bloky, které jsou pouze zdrojové.Tato třída poskytuje základní funkčnost správy spojování a také běžnou kontrolu chyb. |
|
Objekt source_link_manager spravuje síťová spojení bloku zpráv do bloků ISource. |
|
Třída static_partitioner představuje statické rozdělení rozsahu iterovaného pomocí parallel_for.Rozdělovač rozdělí rozsah na tolik bloků, kolik je pracovníků dostupných pro podloženého plánovače. |
|
Třída structured_task_group reprezentuje vysoce strukturovanou kolekci paralelních práce.Individuální paralelní úlohy lze vložit do fronty structured_task_group pomocí objektů task_handle a vyčkat, až se dokončí, nebo lze skupinu úloh před dokončením běhu zrušit, což zruší všechny úlohy, které nebyly spuštěny. |
|
Třída target_block je abstraktní základní třídou, která poskytuje základní funkčnost správy spojení a kontrolu chyb pro bloky, které jsou pouze cílové. |
|
Používání PPL (Parallel Patterns Library) třídy task.Objekt task představuje práci, kterou lze provádět asynchronně a současně s jinými úkoly a paralelní prací prováděnou paralelními algoritmy v modulu Runtime souběžnosti.Vygeneruje výsledek typu _ResultType při úspěšném dokončení.Úkoly typu task<void> nevyrábějí žádný výsledek.Na úkol lze počkat a zrušit jej nezávisle na jiných úkolech.Je možné také skládání s ostatními úlohami používajícími pokračování (then) a spojování (when_all) a vzory voleb (when_any). |
|
Tato třída popisuje výjimku vyvolanou vrstvou úkolů PPL, aby donutila ukončit aktuální úlohu.Vyvolá ji také metoda get() v úloze v případě zrušené úlohy. |
|
Třída task_completion_event umožňuje zpoždění spuštění úlohy, dokud není splněna podmínka, nebo spuštění úlohy jako odpověď na vnější události. |
|
Třída task_continuation_context umožňuje určit, kde chcete, aby bylo pokračování provedeno.Je vhodné použít tuto třídu pouze z aplikace pro web Windows Store.Pro jiné aplikace, než pro Windows Store, je kontext pro pokračování úlohy určován v modulu runtime a nelze jej konfigurovat. |
|
Třída task_group reprezentuje kolekci paralelní práce, na kterou může být čekáno nebo může být zrušena. |
|
Třída task_handle reprezentuje individuální položku paralelní práce.Zapouzdřuje instrukce a data potřebná pro provedení části práce. |
|
Představuje povolené možnosti pro vytvoření úkolu |
|
Blok zpráv timer je blok source_block s jedním cílem schopný posílat zprávy cíli poté, co uběhla určená doba, nebo v zadaných intervalech. |
|
Blok zpráv transformer je setříděný blok propagator_block s jedním cílem a více zdroji, který může akceptovat zprávy jednoho typu a je schopen uložení neomezeného počtu zpráv různého typu. |
|
Blok zpráv unbounded_buffer je setříděný blok propagator_block s více cíli a více zdroji schopný uložit neomezený počet zpráv. |
|
Tato třída popisuje výjimku vyvolána, když je použit nepodporovaný operační systém. |
Struktury
Název |
Description |
---|---|
Struktura DispatchState je použita pro přenos stavu do metody IExecutionContext::Dispatch.Popisuje okolnosti, za kterých je vyvolána metoda Dispatch v rozhraní IExecutionContext. |
|
Rozhraní pro kontext spuštění, které lze spustit na daném virtuálním procesoru a může kooperativně přepnout kontext. |
|
Abstrakce pro vlákno hardware. |
|
Rozhraní ke Správci prostředků modulu Runtime souběžnosti.Toto je rozhraní pomocí kterého plánovače komunikují se Správcem prostředků. |
|
Rozhraní k abstrakci plánovače práce.Správce prostředků modulu Runtime souběžnosti toto rozhraní používá ke komunikaci s plánovači práce. |
|
Rozhraní, pomocí kterého plánovače komunikují se Správcem prostředků modulu Runtime souběžnosti pro vyjednání přidělení prostředků. |
|
Abstrakce pro vlákno provádění.V závislosti na klíči zásad SchedulerType vytvořeného plánovače přidělí Správce prostředků proxy vlákna, která je podporována běžným vláknem Win32 nebo plánovatelným vláknem uživatelského režimu (UMS).Vlákna UMS jsou podporována na 64bitových operačních systémech Windows 7 a vyšších. |
|
Rozhraní k prostředku pro spuštění definovanému Správcem prostředků. |
|
Rozhraní k uzlu topologie definovanému Správcem prostředků.Uzel obsahuje jeden nebo více prostředků pro spuštění. |
|
Představuje seznam dokončení UMS.Když je vlákno UMS zablokováno, je plánovací kontext určený plánovači odeslán, aby bylo možno se rozhodnout, co má být naplánováno na podloženém kořenu virtuálního procesoru, zatímco je původní vlákno zablokováno.Když se původní vlákno odblokuje, operační systém jej vloží do fronty seznamu dokončení, který je dostupný prostřednictvím rozhraní.Plánovač se může seznamu dokončení dotázat na určený kontext plánování nebo jiné místo, kde může nalézt práci. |
|
Rozhraní k abstrakci plánovače práce, který chce předat Správce prostředků modulu Runtime souběžnosti vláknům UMS.Správce prostředků toto rozhraní používá pro komunikaci s plánovačem vláken UMS.Rozhraní IUMSScheduler dědí z rozhraní IScheduler. |
|
Abstrakce pro vlákno provádění.Pokud je zapotřebí, aby byly plánovači přidělená vlákna UMS, je třeba nastavit hodnotu zásady prvku plánovače SchedulerKind na UmsThreadDefault a naimplementovat rozhraní IUMSScheduler.Vlákna UMS jsou podporována pouze na 64bitových operačních systémech Windows 7 a vyšších. |
|
Reprezentuje oznámení ze Správce prostředků, kterého proxy vlákna, která zablokovala a spustila návrat do určeného kontextu plánování plánovače, odblokovala a je připraven na naplánování.Toto rozhraní se zneplatní, jakmile je kontext spuštění asociovaný s proxy vlákna, vrácený z metody GetContext, opětovně naplánován. |
|
Abstrakce pro hardwarové vlákno, na kterém může být proxy vlákna spuštěno. |
|
Rozhraní plánovače |
|
Představuje ukazatel na plánovač.Tato třída existuje pro umožnění specifikace sdílené životnosti pomocí shared_ptr nebo jen prostým odkazem pomocí nezpracovaného ukazatele. |
Výčty
Název |
Description |
---|---|
Platné stavy pro agent. |
|
Typy událostí, které lze sledovat pomocí funkcionality sledování poskytované knihovnou agentů. |
|
Typy událostí, které lze sledovat pomocí funkcionality sledování poskytované modulem Runtime souběžnosti. |
|
Příznaky trasování pro typy událostí |
|
Typ kritické oblasti, ve které se kontext nachází. |
|
Použit zásadou DynamicProgressFeedback pro popis toho, zda budou zdroje pro plánovač opětovně vyváženy vzhledem ke statistickým informacím získaným z plánovače nebo pouze s ohledem na virtuální procesory a jejich přechodech do a ze stavu nečinnosti pomocí volání metod Activate a Deactivate na rozhraní IVirtualProcessorRoot.Další informace o dostupných zásadách plánovače naleznete v PolicyElementKey – výčet. |
|
Typ bloku zpráv join. |
|
Platné odpovědi na nabídku objektu message bloku. |
|
Klíče zásad popisující aspekty chování plánovače.Každý prvek zásad je popsán jako dvojice klíč-hodnota.Další informace o zásadách Plánovač a jejich dopadu na plánovače lze nalézt v tématu Plánovač úloh (Concurrency Runtime). |
|
Použit zásadou SchedulerKind pro popis typu vláken, který by měl plánovač využít pro podkladový kontext spuštění.Další informace o dostupných zásadách plánovače naleznete v PolicyElementKey – výčet. |
|
Použit zásadou SchedulingProtocol pro popis toho, který algoritmus plánování bude pro plánovač využit.Další informace o dostupných zásadách plánovače naleznete v PolicyElementKey – výčet. |
|
Použit k označení stavu, ve kterém se vlákno proxy nachází, když provádí kooperativní přepnutí kontextu do odlišného vlákna proxy. |
|
Popisuje stav spuštění objektu task_group nebo structured_task_group.Hodnota tohoto typu je vrácena řadou metod, které čekají na dokončení úloh naplánovaných pro skupinu úloh. |
|
Používá se zásadou WinRTInitialization k označení, zda a jak Windows Runtime bude inicializován na vláknech plánovače pro aplikaci, která běží v systémech s verzí Windows 8 nebo vyšší.Další informace o dostupných zásadách plánovače naleznete v PolicyElementKey – výčet. |
Funkce
Název |
Description |
---|---|
Přiděluje blok paměti velikosti zadané ze služby Caching Suballocator modulu Runtime souběžnosti. |
|
Přetíženo.Operace asynchronního odeslání, která plánuje úlohu pro přenášení dat do cílového bloku. |
|
Zruší právě prováděnou úlohu.Tato funkce může být volána z těla úkolu k přerušení provádění daného úkolu a způsobit, že úkol vstoupí do stavu canceled.I když ho lze použít v reakci na funkci is_task_cancellation_requested, můžete jej také používat samostatně k iniciaci zrušení úkolu, který právě probíhá. Volání této funkce není podporováno, pokud nejste v těle objektu task.To způsobí nedefinované chování, jako např. zhroucení nebo zablokování aplikace. |
|
Vytvoří asynchronní konstrukt Windows Runtime založený na uživatelem zadanou hodnotu lambda nebo objekt funkce.Návratový typ create_async je buď IAsyncAction^, IAsyncActionWithProgress<TProgress>^, IAsyncOperation<TResult>^, nebo IAsyncOperationWithProgress<TResult, TProgress>^ v závislosti na signatuře lambdy předané metodě. |
|
Přetíženo.Vytvoří objekt úloha PPL.create_task lze použít kdekoli by jste použili úkol konstruktoru.Je určen hlavně pro pohodlí, protože umožňuje použití klíčového slova auto při vytváření úloh. |
|
Vrátí rozhraní, které představuje instanci singletonu ze správce prostředků modulu runtime souběžnosti.Správce prostředků zodpovídá za přiřazení zdrojů plánovačům, které spolu chtějí vzájemně spolupracovat. |
|
Zakáže sledování v modulu Runtime souběžnosti.Tato funkce se již nepoužívá, protože trasování ETW není ve výchozím nastavení registrováno. |
|
Povolí sledování v modulu Runtime souběžnosti.Tato funkce se již nepoužívá, protože trasování ETW je ve výchozím nastavení zapnuto. |
|
Uvolní blok paměti dříve přidělený metodou Alloc nástroji Concurrency Runtime Caching Suballocator. |
|
Vrátí jedinečnou hodnotu identifikátoru, kterou lze přiřadit ke kontextu spuštění, který implementuje rozhraní IExecutionContext. |
|
Vrátí verzi operačního systému. |
|
Vrátí počet podprocesů hardwaru základního systému. |
|
Vrátí počet uzlů NUMA nebo balíček procesoru použitého systému. |
|
Vrátí jedinečnou hodnotu identifikátoru, která může být přiřazena k plánovači, který implementuje rozhraní IScheduler. |
|
Vytvoří bod přerušení pro zrušení.Pokud zrušení probíhá v kontextu, kde je tato funkce volána, vyvolá to vnitřní výjimku, která přeruší provádění aktuálně prováděnou paralelní práci.Pokud zrušení neprobíhá, funkce neudělá nic. |
|
Vrátí informace, zda skupina úloh, která právě probíhá vloženě v aktuálním kontextu, je uprostřed aktivního rušení (nebo v nejbližší době bude).Povšimněte si, že pokud neexistuje žádná skupina aktuálních vloženě prováděných úloh v aktuálním kontextu, bude vrácena hodnota false. |
|
Vrací údaj o tom, zda úkol, který se právě provádí, obdržel žádost o zrušení jeho spuštění.Pokud byl úkol vytvořen s tokenem zrušení a zdroj tokenu přidružený k tokenu se zruší, bude podán požadavek na zrušení úkolu. |
|
Přetíženo.Vytvoří blok zpráv choice z volitelného Scheduler nebo ScheduleGroup a dvou nebo více vstupních zdrojů. |
|
Přetíženo.Vytvoří blok zpráv greedy multitype_join z volitelného Scheduler nebo ScheduleGroup a dvou nebo více vstupních zdrojů. |
|
Přetíženo.Vytvoří blok zpráv non_greedy multitype_join z volitelného Scheduler nebo ScheduleGroup a dvou nebo více vstupních zdrojů. |
|
Metoda factory pro vytváření objektu task_handle. |
|
Přetíženo.Uspořádá prvky v určitém rozsahu do nesestupného pořadí nebo podle setřiďovacího kritéria určeného binárním predikátem paralelně.Tato funkce je sémanticky podobná funkci std::sort v tom, že je založena na porovnání, nestabilní, s řazením na místě a rozdílná v tom, že navíc vyžaduje O(n) místa a výchozí inicializaci pro třízené prvky. |
|
Přetíženo.parallel_for iteruje přes rozsah indexů a spouští uživatelem zadanou funkci při každé iteraci paralelně. |
|
Přetíženo.parallel_for_each aplikuje určenou funkci na každý prvek v rozsahu paralelně.Je sémanticky ekvivalentní s funkcí for_each v oboru názvů std, s výjimkou toho, že je iterace přes elementy prováděna paralelně a pořadí iterace není specifikováno.Argument _Func musí podporovat operátor volání ve formátu operator()(T), kde parametr T je typem položky kontejneru, přes který je iterováno. |
|
Přetíženo.Spouští objekty funkcí předané jako parametry paralelně a blokuje je, dokud není běh dokončen.Každý objekt funkce může být lambda výrazem, ukazatelem na funkci nebo libovolným objektem, který podporuje operátor volání funkce s podpisem void operator()(). |
|
Přetíženo.Uspořádá prvky v zadaném rozsahu do nesestupného uspořádání pomocí algoritmu Číslicového třídění.Jedná se o stabilní třídící funkci, která vyžaduje funkci projekce promítající prvky do klíčů typu celého čísla bez znaménka, aby je bylo možno setřídit.Výchozí inicializace je pro třízení prvků vyžadována. |
|
Přetíženo.Paralelně vypočítá součet všech prvků v určeném rozsahu výpočtem po sobě jdoucích částečných součtů, nebo vypočítá výsledek po sobě jdoucích částečných výsledků získaných obdobně pomocí zadané binární operace jiné než je součet.Funkce parallel_reduce je sémanticky podobná funkci std::accumulate s tím rozdílem, že vyžaduje, aby binární operace byla asociativní, a místo identifikační hodnoty vyžaduje hodnotu počáteční. |
|
Přetíženo.Uspořádá prvky v určitém rozsahu do nesestupného pořadí nebo podle setřiďovacího kritéria určeného binárním predikátem paralelně.Tato funkce je sémanticky podobná funkcí std::sort v tom, že je založena na porovnání, nestabilní a používá řazení na místě. |
|
Přetíženo.Paralelně aplikuje zadaný objekt funkce na každý prvek ve zdrojovém rozsahu, nebo na pár prvků ze dvou zdrojových rozsahů, a zkopíruje vrácené hodnoty objektu funkce do cílového rozsahu.Tato funkčnost je sémanticky shodná s funkcí std::transform. |
|
Přetíženo.Obecná implementace příjmu umožňující čekání kontextu na data z právě jednoho zdroje a filtrování hodnot, které jsou akceptovány. |
|
Vykoná objekt funkce okamžitě a synchronně v kontextu daného tokenu zrušení. |
|
Přetíženo.Synchronní operace odesílání, která počká, dokud cíl zprávu nepotvrdí nebo neodmítne. |
|
Přetíženo.Omezí prostředky pro spuštění použité vnitřními pracovními vlákny modulu Runtime souběžnosti na zadanou sadu spřažení. Tuto metodu lze zavolat pouze předtím, než byl vytvořen správce prostředků, nebo mezi dvěma dobami života správce prostředků.Může být vyvolána vícekrát, dokud správce prostředků v okamžiku vyvolání neexistuje.Po nastavení limitu spřažení, zůstává v platnosti až do dalšího volání metody set_task_execution_resources. Zadaná maska spřažení nemusí být podmnožinou masky spřažení procesů.Spřažení procesů bude aktualizováno, pokud je to nutné. |
|
Vymění prvky dvou objektů concurrent_vector. |
|
Přiřadí daný název bloku zpráv nebo agentovi trasování ETW. |
|
Přetíženo.Obecná implementace příjmu s blokem try umožňující kontextu vyhledání dat z právě jednoho zdroje a filtrování hodnot, které jsou akceptovány.Pokud data nejsou připravena, metoda vrátí hodnotu false. |
|
Pozastaví aktuální kontext na určitou dobu. |
|
Vytvoří úlohu, která bude dokončena úspěšně, pokud budou všechny úlohy uvedené jako argumenty úspěšně dokončeny. |
|
Přetíženo.Vytvoří úlohu, která bude dokončena úspěšně, pokud bude některá z úloh uvedených jako argumenty úspěšně dokončena. |
Operátory
Název |
Description |
---|---|
Zkouší, zda objekt concurrent_vector na levé straně operátoru neodpovídá objektu concurrent_vector na pravé straně operátoru. |
|
Přetíženo.Vytvoří úlohu, která bude dokončena úspěšně, pokud budou obě úlohy uvedené jako argumenty úspěšně dokončeny. |
|
Přetíženo.Vytvoří úlohu, která bude dokončena úspěšně, pokud budou obě úlohy, uvedené jako argumenty, úspěšně dokončeny. |
|
Zkouší, zda je objekt concurrent_vector na levé straně operátoru menší než objekt concurrent_vector na pravé straně. |
|
Zkouší, zda je objekt concurrent_vector na levé straně operátoru menší nebo roven objektu concurrent_vector na pravé straně. |
|
Zkouší, zda je objekt concurrent_vector na levé straně operátoru menší než nebo roven objektu concurrent_vector na pravé straně. |
|
Zkouší, zda je objekt concurrent_vector na levé straně operátoru větší než objekt concurrent_vector na pravé straně. |
|
Zkouší, zda je objekt concurrent_vector na levé straně operátoru je větší nebo roven objektu concurrent_vector na pravé straně. |
Konstanty
Název |
Description |
---|---|
Identifikátor GUID kategorie ({B9B5B78C-0713-4898-A21A-C67949DCED07}) popisující události ETW vyvolané knihovnou agentů v modulu Runtime souběžnosti. |
|
Identifikátor GUID kategorie popisující události ETW vyvolané modulem Runtime souběžnosti, které jsou přímo příbuzné pracím nebo úlohám. |
|
Identifikátor GUID poskytovatele trasování ETW pro modul Runtime souběžnosti. |
|
Označuje podporu rozhraní správce prostředků, který je definován v systému Visual Studio 2010. |
|
Identifikátor GUID kategorie popisující události ETW vyvolané modulem Runtime souběžnosti, které nejsou konkrétněji popsány jinou kategorií. |
|
Identifikátor GUID kategorie popisující události ETW vyvolané modulem Runtime souběžnosti, které jsou přímo příbuzné kontextům. |
|
Hodnota označující, že čekání by nemělo nikdy vypršet. |
|
Hodnota označující, zda vypršel časový limit čekání. |
|
Speciální hodnota pro klíč zásad ContextPriority označující, že priorita vlákna všech kontextů v plánovači by měla být stejná jako ta vlákna, které vytvořilo plánovač. |
|
Identifikátor GUID kategorie popisující události ETW vyvolané modulem Runtime souběžnosti, které jsou přímo příbuzné zámkům. |
|
Speciální hodnota klíče zásad MinConcurrency a MaxConcurrency.Ve výchozím stavu obsahuje počet hardwarových vláken na počítači bez existence jiných omezení. |
|
Identifikátor GUID popisující události ETW vyvolané modulem Runtime souběžnosti, které jsou přímo příbuzné funkci parallel_for_each. |
|
Identifikátor GUID popisující události ETW vyvolané modulem Runtime souběžnosti, které jsou přímo příbuzné funkci parallel_for. |
|
Identifikátor GUID popisující události ETW vyvolané modulem Runtime souběžnosti, které jsou přímo příbuzné funkci parallel_invoke. |
|
Identifikátor GUID popisující události ETW vyvolané modulem Runtime souběžnosti, které jsou přímo příbuzné správci prostředků. |
|
Identifikátor GUID kategorie popisující události ETW vyvolané modulem Runtime souběžnosti, které jsou přímo příbuzné skupinám plánování. |
|
Identifikátor GUID kategorie popisující události ETW vyvolané modulem Runtime souběžnosti, které jsou přímo příbuzné aktivitě plánovače. |
|
Identifikátor GUID kategorie popisující události ETW vyvolané modulem Runtime souběžnosti, které jsou přímo příbuzné virtuálním procesorům. |
Požadavky
Hlavičkové soubory: 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