Megosztás a következőn keresztül:


egyidejűség névtere

A Concurrency névtér olyan osztályokat és függvényeket biztosít, amelyek hozzáférést biztosítanak a C++ egyidejű programozási keretrendszeréhez, a Concurrency Runtime-hoz. További információ: Concurrency Runtime.

Szemantika

namespace concurrency;

Tagok

Typedefs

Név Leírás
runtime_object_identity Minden üzenetpéldány rendelkezik egy identitással, amely azt követi, ahogy klónozzák és továbbítják az üzenetkezelési összetevők között. Ez nem lehet az üzenetobjektum címe.
task_status Egy tevékenység terminálállapotát képviselő típus. Az érvényes értékek a következők: completed és canceled.
TaskProc Egy tevékenység elemi absztrakciója, amely a void (__cdecl * TaskProc)(void *)következőképpen van definiálva: . A TaskProc meghívással meghívható egy feladat törzse.
TaskProc_t Egy tevékenység elemi absztrakciója, amely a void (__cdecl * TaskProc_t)(void *)következőképpen van definiálva: . A TaskProc meghívással meghívható egy feladat törzse.

Osztályok

Név Leírás
affinity_partitioner osztály Az affinity_partitioner osztály hasonló az static_partitioner osztályhoz, de a gyorsítótár-affinitást úgy javítja, hogy kiválasztotta a feldolgozószálak alrendjeinek leképezését. Jelentősen javíthatja a teljesítményt, ha egy hurkot ugyanazon az adatkészleten hajtanak végre újra, és az adatok elférnek a gyorsítótárban. Vegye figyelembe, hogy ugyanazt affinity_partitioner az objektumot kell használni egy párhuzamos ciklus későbbi iterációihoz, amelyet egy adott adatkészleten hajtanak végre, hogy kihasználhassa az adat területi előnyeit.
ügynökosztály Minden független ügynök alaposztályaként használható osztály. Az állapot más ügynökök elől való elrejtésére és üzenetátadással történő interakcióra szolgál.
auto_partitioner osztály Az auto_partitioner osztály az alapértelmezett metódust parallel_forjelöli, parallel_for_each és parallel_transform az iterálási tartomány particionálására használható. Ez a particionálási módszer tartománylopást alkalmaz a terheléselosztáshoz és az iterátumonkénti törléshez.
bad_target osztály Ez az osztály egy olyan kivételt ír le, amely akkor jelenik meg, ha egy üzenetkezelési blokk mutatót kap egy olyan célhoz, amely érvénytelen a végrehajtott művelethez.
osztály hívása Az call üzenetküldő blokkok több forrásból áll, target_block amelyek egy adott függvényt hívnak meg üzenet fogadásakor.
cancellation_token osztály Az cancellation_token osztály azt a képességet jelöli, amely meghatározza, hogy egy művelet megszakítását kérték-e. Egy adott jogkivonat társítható egy task_group, vagy structured_task_grouptask implicit lemondás biztosításához. Lekérdezhető lemondás céljából is, vagy visszahívást is regisztrálhat, ha és amikor a társított cancellation_token_source le van szakítva.
cancellation_token_registration osztály Az cancellation_token_registration osztály egy visszahívási értesítést jelöl egy cancellation_token. Ha a register metódust cancellation_token a lemondás időpontjáról szóló értesítés fogadására használják, cancellation_token_registration a rendszer egy objektumot fogópontként ad vissza a visszahíváshoz, hogy a hívó a továbbiakban ne lehessen adott visszahívást kérni a deregister metódus használatával.
cancellation_token_source osztály Az cancellation_token_source osztály egy megszakítható művelet megszakításának lehetőségét jelöli.
választási osztály Az choice üzenetkezelési blokkok egy több forrásból álló, egycélos blokkok, amelyek egy forráskészlettel folytatott vezérlőfolyamat-interakciót jelölnek. A választási blokk megvárja, amíg a több forrás bármelyike létrehoz egy üzenetet, és propagálja az üzenetet előállító forrás indexét.
kombinálható osztály Az combinable<T> objektum célja, hogy szál-privát adatmásolatokat biztosítson, hogy zárolásmentes szál-helyi alszámításokat hajtson végre a párhuzamos algoritmusok során. A párhuzamos művelet végén a szál-privát részszámítások ezután összevonhatók egy végső eredményben. Ez az osztály használható megosztott változó helyett, és teljesítménybeli javulást eredményezhet, ha egyébként sok versengés történne a megosztott változóval.
concurrent_priority_queue osztály Az concurrent_priority_queue osztály egy tároló, amely lehetővé teszi több szál egyidejű leküldését és előugró elemeit. Az elemek prioritási sorrendben jelennek meg, ahol a prioritást egy sablonargumentumként megadott funktor határozza meg.
concurrent_queue osztály Az concurrent_queue osztály egy szekvenciatároló-osztály, amely lehetővé teszi az első, első szintű hozzáférést az elemeihez. Lehetővé teszi az egyidejűség-biztonságos műveletek korlátozott készletét, például push és try_pop.
concurrent_unordered_map osztály A concurrent_unordered_map osztály egy egyidejűségbiztos tároló, amely különböző hosszúságú, std::pair<const K, _Element_type>típusú elemek sorozatát vezérli. A szekvencia olyan módon jelenik meg, amely lehetővé teszi az egyidejűségmentes hozzáfűzést, az elemhozzáférést, az iterátor-hozzáférést és az iterátor-bejárási műveleteket.
concurrent_unordered_multimap Osztály A concurrent_unordered_multimap osztály egy egyidejűleg biztonságos tároló, amely különböző hosszúságú, std::pair<const K, _Element_type>típusú elemek sorozatát vezérli. A szekvencia olyan módon jelenik meg, amely lehetővé teszi az egyidejűségmentes hozzáfűzést, az elemhozzáférést, az iterátor-hozzáférést és az iterátor-bejárási műveleteket.
concurrent_unordered_multiset osztály A concurrent_unordered_multiset osztály egy egyidejűségbiztos tároló, amely a K típusú elemek változó hosszúságú sorozatát vezérli. A szekvencia olyan módon jelenik meg, amely lehetővé teszi az egyidejűségmentes hozzáfűzést, az elemhozzáférést, az iterátor-hozzáférést és az iterátor-bejárási műveleteket.
concurrent_unordered_set osztály A concurrent_unordered_set osztály egy egyidejűségbiztos tároló, amely a K típusú elemek változó hosszúságú sorozatát vezérli. A szekvencia olyan módon jelenik meg, amely lehetővé teszi az egyidejűségmentes hozzáfűzést, az elemhozzáférést, az iterátor-hozzáférést és az iterátor-bejárási műveleteket.
concurrent_vector osztály Az concurrent_vector osztály egy szekvenciatároló-osztály, amely lehetővé teszi a véletlenszerű hozzáférést bármely elemhez. Lehetővé teszi az egyidejűségmentes hozzáfűzést, az elemhozzáférést, az iterátor-hozzáférést és az iterátoros bejárási műveleteket.
Környezeti osztály Egy végrehajtási környezet absztrakciója.
context_self_unblock osztály Ez az osztály egy kivételt ír le, amely akkor jelenik meg, ha egy UnblockContext objektum metódusát ugyanabból a környezetből hívják meg. Ez azt jelezné, hogy egy adott környezet megkísérelte feloldani a tiltást.
context_unblock_unbalanced osztály Ez az osztály egy kivételt ír le, amely akkor jelenik meg, ha egy BlockContext objektum hívásai és Unblock metódusai nincsenek megfelelően párosítva.
critical_section osztály Nem reentrant mutex, amely kifejezetten ismeri az egyidejűségi futtatókörnyezetet.
CurrentScheduler osztály A hívási környezethez társított aktuális ütemező absztrakciója.
default_scheduler_exists osztály Ez az osztály egy kivételt ír le, amely akkor jelenik meg, amikor a Scheduler::SetDefaultSchedulerPolicy metódust meghívják, amikor már létezik alapértelmezett ütemező a folyamaton belül.
eseményosztály Manuális visszaállítási esemény, amely kifejezetten tisztában van az egyidejűségi futtatókörnyezetgel.
improper_lock osztály Ez az osztály egy olyan kivételt ír le, amely akkor keletkezik, ha a zárolás nem megfelelő.
improper_scheduler_attach osztály Ez az osztály egy kivételt ír le, amely akkor jelenik meg, amikor a Attach metódust meghívják egy Scheduler olyan objektumra, amely már kapcsolódik az aktuális környezethez.
improper_scheduler_detach osztály Ez az osztály egy kivételt ír le, amely akkor jelenik meg, ha a CurrentScheduler::Detach metódus olyan környezetben van meghívva, amely nem lett egyetlen ütemezőhöz sem csatolva egy AttachScheduler objektum metódusával.
improper_scheduler_reference osztály Ez az osztály egy olyan kivételt ír le, amely akkor jelenik meg, amikor a Reference metódust egy Scheduler leállított objektumra hívja meg egy olyan környezetből, amely nem része az ütemezőnek.
invalid_link_target osztály Ez az osztály egy olyan kivételt ír le, amely akkor jelenik meg, amikor az link_target üzenetkezelési blokk metódusát meghívják, és az üzenetkezelési blokk nem tud a célhoz kapcsolódni. Ennek az lehet az eredménye, hogy túllépi az üzenetküldő blokk által engedélyezett hivatkozások számát, vagy megpróbál egy adott célt kétszer ugyanahhoz a forráshoz kapcsolni.
invalid_multiple_scheduling osztály Ez az osztály egy kivételt ír le, amely akkor jelenik meg, ha egy task_handle objektumot többször run ütemeznek egy vagy structured_task_group egy task_group objektum metódusával anélkül, hogy beavatkozó hívást indítanának a metódusok vagy run_and_wait metódusok wait felé.
invalid_operation osztály Ez az osztály egy olyan kivételt ír le, amelyet érvénytelen műveletet hajtanak végre, amelyet nem ismertet pontosabban az egyidejűségi futtatókörnyezet által kidobott másik kivételtípus.
invalid_oversubscribe_operation osztály Ez az osztály egy kivételt ír le, amely akkor jelenik meg, amikor a Context::Oversubscribe metódus meghívása a _BeginOversubscription metódus false előzetes hívása Context::Oversubscribe nélkül történik, és a paraméter értéke truea _BeginOversubscription következő.
invalid_scheduler_policy_key osztály Ez az osztály egy olyan kivételt ír le, amely akkor jelenik meg, ha érvénytelen vagy ismeretlen kulcsot ad át egy SchedulerPolicy objektumkonstruktornak, vagy SetPolicyValue az SchedulerPolicy objektum metódusa olyan kulcsot ad át, amelyet más eszközökkel, például a SetConcurrencyLimits metódussal kell módosítani.
invalid_scheduler_policy_thread_specification osztály Ez az osztály egy kivételt ír le, amely akkor merül fel, amikor egy SchedulerPolicy objektum egyidejűségi korlátait próbálják beállítani, így a MinConcurrency kulcs értéke kisebb, mint a MaxConcurrency kulcs értéke.
invalid_scheduler_policy_value osztály Ez az osztály egy kivételt ír le, amely akkor jelenik meg, ha egy SchedulerPolicy objektum házirendkulcsa érvénytelen értékre van állítva az adott kulcshoz.
ISource osztály Az ISource osztály az összes forrásblokk felülete. A forrásblokkok az üzeneteket blokkokká ITarget propagálja.
ITarget-osztály Az ITarget osztály az összes célblokk felülete. A célblokkok blokkok által ISource kínált üzeneteket használnak fel.
Csatlakozás az osztályhoz Az join üzenetkezelési blokkok egy több forrásból álló, egyetlen célként szolgáló propagator_block , rendezett blokkok, amelyek az egyes forrásokból származó típusú T üzeneteket egyesítik.
location class Fizikai hely absztrakciója a hardveren.
üzenetosztály Az üzenetblokkok között átadott adat hasznos adatokat tartalmazó alapszintű üzenetborító.
message_not_found osztály Ez az osztály egy kivételt ír le, amely akkor jelenik meg, ha egy üzenetblokk nem talál egy kért üzenetet.
message_processor osztály Az message_processor osztály az objektumok feldolgozására message szolgáló absztrakt alaposztály. Az üzenetek sorrendjére nincs garancia.
missing_wait osztály Ez az osztály egy kivételt ír le, amely akkor jelenik meg, ha az objektum destruktorának végrehajtásakor még ütemezett tevékenységek vannak egy task_group vagy structured_task_group egy objektumra. Ez a kivétel soha nem lesz kivetve, ha a destruktort egy kivétel eredményeként visszatekerő verem miatt éri el.
multi_link_registry osztály Az multi_link_registry objektum egy network_link_registry olyan objektum, amely több forrásblokkot vagy több célblokkot kezel.
multitype_join osztály Az multitype_join üzenetkezelési blokkok egy több forrásból álló, egycélos üzenetkezelési blokkok, amelyek az egyes forrásoktól különböző típusú üzeneteket egyesítenek, és az egyesített üzeneteket a céljuknak nyújtják.
nested_scheduler_missing_detach osztály Ez az osztály egy kivételt ír le, amely akkor merült fel, amikor az egyidejűségi futtatókörnyezet azt észleli, hogy nem sikerült meghívni a CurrentScheduler::Detach metódust egy olyan környezetben, amely egy második ütemezőhöz van csatolva az AttachScheduler objektum metódusával.
network_link_registry osztály Az network_link_registry absztrakt alaposztály kezeli a forrás- és célblokkok közötti kapcsolatokat.
operation_timed_out osztály Ez az osztály egy olyan kivételt ír le, amely akkor jelenik meg, amikor egy művelet túllépte az időkorlátot.
ordered_message_processor osztály Az an ordered_message_processor egy message_processor olyan üzenetblokk, amely lehetővé teszi az üzenetblokkok számára, hogy az üzeneteket a beérkezett üzenetek sorrendjében dolgozzák fel.
Overwrite_Buffer Osztály Az overwrite_buffer üzenetküldő blokk egy többhelyes, több forrásból álló rendszer, propagator_block amely képes egyszerre egyetlen üzenet tárolására. Az új üzenetek felülírják a korábban tárolt üzeneteket.
progress_reporter osztály A folyamatjelző osztály lehetővé teszi egy adott típusú állapotértesítések jelentését. Minden progress_reporter objektum egy adott aszinkron művelethez vagy művelethez van kötve.
propagator_block osztály Az propagator_block osztály egy absztrakt alaposztály az olyan üzenetblokkokhoz, amelyek forrásként és célként is használhatók. Egyesíti az osztályok és target_block az osztályok funkcióitsource_block.
reader_writer_lock osztály Egy író-preferencia-üzenetsor-alapú olvasó-író zárolása csak helyi fonással. A zárolás elsőként – elsőként (FIFO) hozzáférést biztosít az írókhoz, és folyamatosan betölti az írókat.
ScheduleGroup osztály Egy ütemezési csoport absztrakcióját jelöli. Az ütemezési csoportok olyan kapcsolódó munkakészleteket szerveznek, amelyek az idő függvényében közel ütemezhetők egymáshoz, ha egy másik feladatot hajtanak végre ugyanabban a csoportban, mielőtt egy másik csoportra, vagy térbelileg hajtanak végre több elemet ugyanazon a csoportban ugyanazon a NUMA-csomóponton vagy fizikai szoftvercsatornán.
Ütemező osztály Az egyidejűségi futtatókörnyezet ütemezőjének absztrakciója.
scheduler_not_attached osztály Ez az osztály egy olyan kivételt ír le, amely akkor lép fel, amikor egy műveletet hajtanak végre, amelyhez ütemezőt kell csatlakoztatni az aktuális környezethez, és az egyik nem.
scheduler_resource_allocation_error osztály Ez az osztály egy kivételt ír le, amely azért merült fel, mert nem sikerült beszerezni egy kritikus erőforrást az egyidejűségi futtatókörnyezetben.
scheduler_worker_creation_error osztály Ez az osztály egy kivételt ír le, amely azért merült fel, mert nem sikerült létrehozni egy feldolgozó-végrehajtási környezetet az egyidejűségi futtatókörnyezetben.
SchedulerPolicy osztály Az SchedulerPolicy osztály kulcs-/érték párokat tartalmaz, amelyek mindegyike egy-egy szabályzatelemhez tartozik, amelyek az ütemezőpéldányok viselkedését szabályozzák.
simple_partitioner osztály Az simple_partitioner osztály a tartomány parallel_forstatikus particionálását jelöli. A particionáló úgy osztja el a tartományt adattömbökre, hogy minden egyes adattömb legalább az adattömb méretében megadott iterációk számát tartalmazza.
single_assignment osztály Az single_assignment üzenetküldő blokk egy többhelyes, több forrásból álló, propagator_block egyetlen, egyszer messageírható tároló tárolására alkalmas.
single_link_registry osztály Az single_link_registry objektum egy network_link_registry olyan objektum, amely csak egyetlen forrás- vagy célblokkot kezel.
source_block osztály Az source_block osztály a csak forrásblokkok absztrakt alaposztálya. Az osztály alapvető kapcsolatkezelési funkciókat és gyakori hibaellenőrzéseket biztosít.
source_link_manager osztály Az source_link_manager objektum kezeli a blokkokra mutató üzenetküldési blokkok hálózati hivatkozásait ISource .
static_partitioner osztály Az static_partitioner osztály a tartomány parallel_forstatikus particionálását jelöli. A particionáló annyi adattömbre osztja a tartományt, amennyi a mögöttes ütemező számára elérhető feldolgozók.
structured_task_group osztály Az structured_task_group osztály a párhuzamos munka erősen strukturált gyűjteményét jelöli. Az egyes párhuzamos tevékenységeket várólistára helyezheti egy structured_task_group használt task_handle objektumba, és megvárhatja, amíg befejeződnek, vagy megszakíthatja a feladatcsoportot, mielőtt befejezték volna a végrehajtást, ami megszakítja a végrehajtást nem megkezdő tevékenységeket.
target_block osztály Az target_block osztály egy absztrakt alaposztály, amely alapvető kapcsolatkezelési funkciókat és hibaellenőrzést biztosít a csak célblokkok esetében.
feladatosztály (egyidejűségi futtatókörnyezet) A párhuzamos minták könyvtára (PPL) task osztály. Az task objektumok az aszinkron módon végrehajtható munkát jelölik, és egyidejűleg az egyidejűségi futtatókörnyezetben párhuzamos algoritmusok által létrehozott más feladatokkal és párhuzamos munkával. A sikeres befejezéskor a típus _ResultType eredménye lesz. A típusfeladatok task<void> nem eredményeznek eredményt. A tevékenységek más tevékenységektől függetlenül várakozhatnak és megszakíthatók. Más feladatokkal is összeállítható folytatások(then) és illesztési(when_all) és választási(when_any) minták használatával.
task_canceled osztály Ez az osztály a PPL-tevékenységréteg által okozott kivételt írja le annak érdekében, hogy az aktuális tevékenységet megszakítsa. A metódus egy megszakított tevékenységhez is eldobja get() a feladatot.
task_completion_event osztály Az task_completion_event osztály lehetővé teszi egy tevékenység végrehajtását, amíg egy feltétel teljesül, vagy egy külső eseményre válaszul elindít egy tevékenységet.
task_continuation_context osztály Az task_continuation_context osztály lehetővé teszi annak megadását, hogy hol szeretné végrehajtani a folytatást. Ezt az osztályt csak egy UWP-alkalmazásból érdemes használni. A nem Windows rendszerű futtatókörnyezeti alkalmazások esetében a feladat folytatásának végrehajtási környezetét a futtatókörnyezet határozza meg, és nem konfigurálható.
task_group osztály Az task_group osztály párhuzamos munkagyűjteményt jelöl, amely várakozhat vagy megszakítható.
task_handle osztály Az task_handle osztály egy különálló párhuzamos munkaelemet jelöl. Tartalmazza a munka végrehajtásához szükséges utasításokat és adatokat.
task_options osztály (egyidejűségi futtatókörnyezet) A tevékenységek létrehozásának engedélyezett beállításait jelöli
Időzítő osztály Az timer üzenetküldő blokk egy olyan egyetlen cél, source_block amely képes üzenetet küldeni a célnak egy adott időszak leteltét követően vagy adott időközönként.
transformer class Az transformer üzenetküldő blokk egy egy célként szolgáló, több forrásból álló, rendezett propagator_block , amely képes fogadni egy típusú üzeneteket, és képes más típusú üzenetek kötetlen számának tárolására.
unbounded_buffer osztály Az unbounded_buffer üzenetküldő blokk egy többhelyes, több forrásból álló rendszer, propagator_block amely korlátlan számú üzenet tárolására képes.
unsupported_os osztály Ez az osztály egy nem támogatott operációs rendszer használatakor kidobott kivételt ír le.

Struktúrák

Név Leírás
DispatchState struktúra A DispatchState struktúra az állapot metódusba való átvitelére IExecutionContext::Dispatch szolgál. Ismerteti azokat a körülményeket, amelyek között a Dispatch metódus meghívása egy IExecutionContext felületen történik.
IExecutionContext struktúra Egy végrehajtási környezethez tartozó felület, amely egy adott virtuális processzoron futtatható, és együttműködésre van kapcsolva.
IExecutionResource struktúra Egy hardverszál absztrakciója.
IResourceManager struktúra A Concurrency Runtime Resource Manager felületét. Ez az a felület, amellyel az ütemezők kommunikálnak a Resource Managerrel.
IScheduler-struktúra Egy munkaütemező absztrakciójának felülete. Az egyidejűségi futtatókörnyezet Resource Managere ezen a felületen kommunikál a munkaütemezőkkel.
ISchedulerProxy struktúra Az a felület, amellyel az ütemezők kommunikálnak az egyidejűségi futtatókörnyezet Resource Managerével az erőforrás-foglalás egyeztetéséhez.
IThreadProxy struktúra Egy végrehajtási szál absztrakciója. A létrehozott ütemező házirendkulcsától függően SchedulerType a Resource Manager egy olyan szálproxyt biztosít, amelyet egy normál Win32-szál vagy egy felhasználói módú schedulable (UMS) szál biztosít. Az UMS-szálak 64 bites, Windows 7-es vagy újabb verziójú operációs rendszereken támogatottak.
ITopologyExecutionResource Struktúra A Resource Manager által meghatározott végrehajtási erőforrás felülete.
ITopologyNode-struktúra A Resource Manager által definiált topológiacsomópont felülete. A csomópontok egy vagy több végrehajtási erőforrást tartalmaznak.
IUMSCompletionList struktúra UMS-befejezési listát jelöl. Ha egy UMS-szál blokkolódik, a rendszer az ütemező kijelölt ütemezési környezetét küldi el, hogy eldöntse, mit ütemezzen a mögöttes virtuális processzor gyökerén, miközben az eredeti szál le van tiltva. Amikor az eredeti szál feloldja a tiltást, az operációs rendszer várólistára állítja azt a befejezési listára, amely ezen a felületen keresztül érhető el. Az ütemező lekérdezheti a befejezési listát a kijelölt ütemezési környezetben, vagy bármely más helyen, ahol munkát keres.
IUMSScheduler struktúra Egy munkaütemező absztrakciójának felülete, amely azt szeretné, hogy a Concurrency Runtime Resource Manager felhasználói módú schedulable (UMS) szálakat adjon neki. A Resource Manager ezen a felületen kommunikál az UMS-szálütemezőkkel. A IUMSScheduler felület öröklődik az IScheduler interfésztől.
IUMSThreadProxy struktúra Egy végrehajtási szál absztrakciója. Ha azt szeretné, hogy az ütemező felhasználói módú schedulable (UMS) szálakat kapjon, állítsa be az ütemező házirendelemének SchedulerKind értékét a következőre UmsThreadDefault, és implementálja a IUMSScheduler felületet. Az UMS-szálak csak a Windows 7-es és újabb verziójú 64 bites operációs rendszereken támogatottak.
IUMSUnblockNotification struktúra A Resource Manager értesítése arról, hogy az ütemező kijelölt ütemezési környezetéhez való visszatérést letiltó és aktiváló szálproxy feloldva lett, és készen áll az ütemezésre. Ez a felület érvénytelen, ha a szálproxy metódusból GetContext visszaadott társított végrehajtási környezetét újraütemezi.
IVirtualProcessorRoot struktúra Egy hardverszál absztrakciója, amelyen egy szálproxy végrehajtható.
scheduler_interface struktúra Ütemező felület
scheduler_ptr struktúra (egyidejűségi futtatókörnyezet) Egy ütemezőhöz mutató mutatót jelöl. Ez az osztály azért létezik, hogy lehetővé tegye a megosztott élettartam specifikációját shared_ptr vagy egyszerű hivatkozás használatával nyers mutató használatával.

Számbavételek

Név Leírás
agent_status Az érvényes állapotok egy agent.
Agents_EventType Az ügynökök tára által kínált nyomkövetési funkcióval nyomon követhető események típusai
ConcRT_EventType Az egyidejűségi futtatókörnyezet által kínált nyomkövetési funkcióval nyomon követhető események típusai.
Concrt_TraceFlags Az eseménytípusok nyomkövetési jelzői
CriticalRegionType Azon kritikus régió típusa, amelyben a környezet található.
DynamicProgressFeedbackType A szabályzat azt DynamicProgressFeedback írja le, hogy az ütemező erőforrásai újraegyensúlyozva lesznek-e az ütemezőtől gyűjtött statisztikai adatok alapján, vagy csak az inaktív állapotba kerülő virtuális processzorok alapján, a Activate felületre irányuló hívásokon és Deactivate metódusokon IVirtualProcessorRoot keresztül. Az elérhető ütemezőházirendekkel kapcsolatos további információkért lásd: PolicyElementKey.
join_type Az üzenetküldési join blokk típusa.
message_status Egy objektum blokkra vonatkozó ajánlatának message érvényes válaszai.
PolicyElementKey Az ütemező viselkedésének szempontjait leíró házirendkulcsok. Minden szabályzatelemet egy kulcs-érték pár ír le. Az ütemező házirendjeiről és az ütemezőkre gyakorolt hatásukról további információt a Feladatütemező című témakörben talál.
SchedulerType A szabályzat azokat a SchedulerKind szálakat írja le, amelyeket az ütemezőnek használnia kell az alapul szolgáló végrehajtási környezetekhez. Az elérhető ütemezőházirendekkel kapcsolatos további információkért lásd: PolicyElementKey.
SchedulingProtocolType A szabályzat azt SchedulingProtocol írja le, hogy melyik ütemezési algoritmust használja a rendszer az ütemezőhöz. Az elérhető ütemezőházirendekkel kapcsolatos további információkért lásd: PolicyElementKey.
SwitchingProxyState A szálproxy állapotának jelölésére szolgál, amikor egy együttműködési környezeti kapcsolót hajt végre egy másik szálproxyra.
task_group_status Egy vagy structured_task_group több task_group objektum végrehajtási állapotát ismerteti. Az ilyen típusú értékeket számos metódus adja vissza, amelyek a feladatcsoportba ütemezett tevékenységek befejezésére várnak.
WinRTInitializationType A szabályzat azt WinRTInitialization írja le, hogy a Windows futtatókörnyezet inicializálva lesz-e ütemezőszálakon egy olyan alkalmazáshoz, amely Windows 8 vagy újabb verziójú operációs rendszereken fut. Az elérhető ütemezőházirendekkel kapcsolatos további információkért lásd: PolicyElementKey.

Functions

Név Leírás
Alloc függvény Az egyidejű futtatókörnyezet gyorsítótárazási alwebhelyétől megadott méretű memóriablokkot foglal le.
asend függvény Túlterhelt. Aszinkron küldési művelet, amely ütemez egy feladatot az adatok célblokkba való propagálására.
cancel_current_task függvény Megszakítja az aktuálisan végrehajtó feladatot. Ez a függvény meghívható a tevékenység törzséből a tevékenység végrehajtásának megszakításához, és a canceled állapotba való belépéséhez.

Nem támogatott forgatókönyv a függvény meghívása, ha nem egy tasktörzsében van. Ha így tesz, az nem definiált viselkedést eredményez, például összeomlást vagy nem válaszolást az alkalmazásban.
create_async függvény Létrehoz egy Windows Runtime aszinkron szerkezetet egy felhasználó által megadott lambda vagy függvényobjektum alapján. A create_async visszatérési típusa az egyik IAsyncAction^, IAsyncActionWithProgress<TProgress>^, IAsyncOperation<TResult>^vagy IAsyncOperationWithProgress<TResult, TProgress>^ a metódusnak átadott lambda aláírása alapján.
create_task függvény Túlterhelt. Létrehoz egy PPL-feladat objektumot. create_task bárhol használható, ahol egy feladatkonstruktort használna. Ez elsősorban a kényelem érdekében érhető el, mivel lehetővé teszi a auto kulcsszó használatát a tevékenységek létrehozásakor.
CreateResourceManager függvény Egy olyan felületet ad vissza, amely az egyidejűségi futtatókörnyezet Resource Managerének egytonos példányát jelöli. A Resource Manager felelős azért, hogy erőforrásokat rendeljen az egymással együttműködő ütemezőkhöz.
DisableTracing függvény Letiltja a nyomkövetést az egyidejűségi futtatókörnyezetben. Ez a függvény elavult, mert az ETW-nyomkövetés alapértelmezés szerint nincs regisztrálva.
EnableTracing függvény Engedélyezi a nyomkövetést az egyidejűségi futtatókörnyezetben. Ez a függvény elavult, mert az ETW-nyomkövetés alapértelmezés szerint be van kapcsolva.
Szabad függvény Felszabadít egy memóriablokkot, amelyet korábban a Alloc metódus lefoglalt az Egyidejű futtatókörnyezet gyorsítótárazási alwebhelyéhez.
get_ambient_scheduler függvény (egyidejűségi futtatókörnyezet)
GetExecutionContextId függvény A IExecutionContext felületet megvalósító végrehajtási környezethez hozzárendelhető egyedi azonosítót ad vissza.
GetOSVersion függvény Az operációs rendszer verzióját adja vissza.
GetProcessorCount függvény A mögöttes rendszeren lévő hardverszálak számát adja vissza.
GetProcessorNodeCount függvény A mögöttes rendszeren található NUMA-csomópontok vagy processzorcsomagok számát adja vissza.
GetSchedulerId függvény A IScheduler felületet megvalósító ütemezőhöz hozzárendelhető egyedi azonosítót ad vissza.
interruption_point függvény Megszakítási pontot hoz létre a lemondáshoz. Ha egy lemondás folyamatban van abban a környezetben, ahol a függvényt meghívják, ez egy belső kivételt eredményez, amely megszakítja a jelenleg futó párhuzamos munka végrehajtását. Ha a lemondás nincs folyamatban, a függvény nem tesz semmit.
is_current_task_group_canceling függvény Annak jelzését adja vissza, hogy az aktuális környezetben jelenleg beágyazott tevékenységet végrehajtó tevékenységcsoport aktív lemondás közepén van-e (vagy hamarosan). Vegye figyelembe, hogy ha jelenleg nincs olyan tevékenységcsoport, amely az aktuális környezetben hajt végre beágyazott végrehajtást, a rendszer false ad vissza.
make_choice függvény Túlterhelt. Egy choice üzenetküldési blokkot hoz létre egy választható Scheduler vagy ScheduleGroup és két vagy több bemeneti forrásból.
make_greedy_join függvény Túlterhelt. Egy greedy multitype_join üzenetküldési blokkot hoz létre egy választható Scheduler vagy ScheduleGroup és két vagy több bemeneti forrásból.
make_join függvény Túlterhelt. Egy non_greedy multitype_join üzenetküldési blokkot hoz létre egy választható Scheduler vagy ScheduleGroup és két vagy több bemeneti forrásból.
make_task függvény Egy task_handle objektum létrehozására szolgáló gyári módszer.
parallel_buffered_sort függvény Túlterhelt. A megadott tartomány elemeit egy nem csökkenő sorrendbe rendezi, vagy egy bináris predikátum által megadott rendezési feltételnek megfelelően, párhuzamosan. Ez a függvény szemantikailag hasonlít a std::sort, mivel összehasonlításalapú, instabil, helyben rendezés, kivéve, hogy O(n) további helyet igényel, és a rendezendő elemek alapértelmezett inicializálását igényli.
parallel_for függvény Túlterhelt. parallel_for az indexek tartományán halad át, és egy felhasználó által megadott függvényt hajt végre az egyes iterációkban, párhuzamosan.
parallel_for_each függvény Túlterhelt. parallel_for_each egy megadott függvényt alkalmaz egy tartomány minden elemére, párhuzamosan. Szemantikailag megegyezik a for_each névtér std függvényével, azzal a különbségekkel, hogy az elemek iterációja párhuzamosan történik, és az iteráció sorrendje meghatározatlan. Az _Func argumentumnak támogatnia kell az űrlap függvényhívási operátorát, operator()(T) ahol a T paraméter az iterált tároló elemtípusa.
parallel_invoke függvény Túlterhelt. Párhuzamosan hajtja végre a paraméterekként megadott függvényobjektumokat, és letiltja a végrehajtás befejezését. Minden függvényobjektum lehet lambda kifejezés, egy függvénymutató vagy bármely olyan objektum, amely támogatja a függvényhívási operátort az aláírási void operator()().
parallel_radixsort függvény Túlterhelt. Egy adott tartomány elemeit nem csökkenő sorrendbe rendezi radix rendezési algoritmus használatával. Ez egy stabil rendezési függvény, amely olyan kivetítési függvényt igényel, amely a projektelemeket aláíratlan egész számszerű kulcsokká rendezheti. A rendezés alatt álló elemekhez alapértelmezett inicializálás szükséges.
parallel_reduce függvény Túlterhelt. Kiszámítja egy adott tartomány összes elemének összegét az egymást követő részleges összegek számításával, vagy az egymást követő részleges eredmények eredményét, hasonlóan az összegtől eltérő megadott bináris művelettel párhuzamosan. parallel_reduce szemantikailag hasonlít a std::accumulate, azzal a kivételrel, hogy a bináris műveletnek asszociatívnak kell lennie, és a kezdeti érték helyett identitásértéket igényel.
parallel_sort függvény Túlterhelt. A megadott tartomány elemeit egy nem csökkenő sorrendbe rendezi, vagy egy bináris predikátum által megadott rendezési feltételnek megfelelően, párhuzamosan. Ez a függvény szemantikailag hasonlít a std::sort, mivel összehasonlításalapú, instabil, helyben rendezés.
parallel_transform függvény Túlterhelt. Egy megadott függvényobjektumot alkalmaz egy forrástartomány minden elemére vagy két forrástartomány elemeinek párjára, és a függvényobjektum visszatérési értékeit egy céltartományba másolja párhuzamosan. Ez a funkció szemantikailag egyenértékű a std::transform.
fogadó függvény Túlterhelt. Általános fogadási implementáció, amely lehetővé teszi, hogy a környezet pontosan egy forrásból várja meg az adatokat, és szűrje az elfogadott értékeket.
run_with_cancellation_token függvény Egy függvényobjektumot azonnal és szinkron módon hajt végre egy adott lemondási jogkivonat kontextusában.
függvény küldése Túlterhelt. Szinkron küldési művelet, amely megvárja, amíg a cél elfogadja vagy elutasítja az üzenetet.
set_ambient_scheduler függvény (egyidejűségi futtatókörnyezet)
set_task_execution_resources függvény Túlterhelt. Az egyidejűségi futtatókörnyezet belső feldolgozói szálai által használt végrehajtási erőforrásokat a megadott affinitási csoportra korlátozza.

Ezt a metódust csak a Resource Manager létrehozása előtt vagy két Resource Manager-élettartam között lehet meghívni. Többször is meghívható, ha a Resource Manager nem létezik a meghívás időpontjában. Az affinitási korlát beállítása után a set_task_execution_resources metódus következő érvényes hívásáig érvényben marad.

A megadott affinitási maszknak nem kell a folyamat affinitási maszkjának egy részhalmazának lennie. A folyamat affinitása szükség esetén frissül.
függvény felcserélése Két concurrent_vector objektum elemeinek cseréje.
task_from_exception függvény (egyidejűségi futtatókörnyezet)
task_from_result függvény (egyidejűségi futtatókörnyezet)
Trace_agents_register_name függvény A megadott nevet társítja az üzenetblokkhoz vagy -ügynökhöz az ETW-nyomkövetésben.
try_receive függvény Túlterhelt. Általános kipróbálási implementáció, amely lehetővé teszi, hogy a környezet pontosan egy forrásból keressen adatokat, és szűrje az elfogadott értékeket. Ha az adatok nem állnak készen, a metódus hamis értéket ad vissza.
wait függvény Egy adott ideig szünetelteti az aktuális környezetet.
when_all függvény Létrehoz egy feladatot, amely sikeresen befejeződik, ha az argumentumként megadott összes tevékenység sikeresen befejeződött.
when_any függvény Túlterhelt. Létrehoz egy feladatot, amely sikeresen befejeződik, ha az argumentumként megadott tevékenységek bármelyike sikeresen befejeződik.

Működtetők

Név Leírás
operátor!= Ellenőrzi, hogy az concurrent_vector operátor bal oldalán lévő objektum nem egyenlő-e a concurrent_vector jobb oldalon lévő objektummal.
operátor> Túlterhelt. Létrehoz egy feladatot, amely sikeresen befejeződik, ha az argumentumként megadott tevékenységek mindegyike sikeresen befejeződött.
operator|| Túlterhelt. Létrehoz egy feladatot, amely sikeresen befejeződik, ha az argumentumként megadott tevékenységek bármelyike sikeresen befejeződik.
operátor< Ellenőrzi, hogy az concurrent_vector operátor bal oldalán lévő objektum kisebb-e, mint a concurrent_vector jobb oldalon lévő objektum.
operátor<= Ellenőrzi, hogy az concurrent_vector operátor bal oldalán lévő objektum kisebb-e, mint a concurrent_vector jobb oldalon lévő objektumé.
operátor== Ellenőrzi, hogy az concurrent_vector operátor bal oldalán lévő objektum egyenlő-e a concurrent_vector jobb oldalon lévő objektummal.
operátor> Ellenőrzi, hogy az concurrent_vector operátor bal oldalán lévő objektum nagyobb-e, mint a concurrent_vector jobb oldalon lévő objektum.
operátor>= Ellenőrzi, hogy az concurrent_vector operátor bal oldalán lévő objektum nagyobb vagy egyenlő-e a concurrent_vector jobb oldalon lévő objektummal.

Állandók

Név Leírás
AgentEventGuid Egy kategória GUID azonosítója ({B9B5B78C-0713-4898-A21A-C67949DCED07}), amely leírja az ügynökök könyvtára által az egyidejűségi futtatókörnyezetben aktivált ETW-eseményeket.
ChoreEventGuid Egy kategória GUID azonosítója, amely az egyidejűségi futtatókörnyezet által aktivált ETW-eseményeket írja le, amelyek közvetlenül kapcsolódnak a házimunkához vagy a feladatokhoz.
ConcRT_ProviderGuid Az egyidejűségi futtatókörnyezet ETW-szolgáltatói GUID azonosítója.
CONCRT_RM_VERSION_1 A Visual Studio 2010-ben definiált Resource Manager-felület támogatását jelzi.
ConcRTEventGuid Egy kategória GUID azonosítója, amely az egyidejűségi futtatókörnyezet által aktivált ETW-eseményeket írja le, amelyeket egy másik kategória nem ír le pontosabban.
ContextEventGuid Egy kategória GUID azonosítója, amely az egyidejűségi futtatókörnyezet által aktivált ETW-eseményeket írja le, amelyek közvetlenül kapcsolódnak a környezetekhez.
COOPERATIVE_TIMEOUT_INFINITE Az érték azt jelzi, hogy a várakozás soha nem időtúllépést jelez.
COOPERATIVE_WAIT_TIMEOUT A várakozás időtúllépését jelző érték.
INHERIT_THREAD_PRIORITY A szabályzatkulcs ContextPriority különleges értéke azt jelzi, hogy az ütemezőben lévő összes környezet szálprioritásának meg kell egyeznie az ütemezőt létrehozó szál prioritásával.
LockEventGuid Az egyidejűségi futtatókörnyezet által aktivált ETW-eseményeket leíró kategória GUID azonosítója, amely közvetlenül kapcsolódik a zárolásokhoz.
MaxExecutionResources A szabályzatkulcsok MinConcurrency és MaxConcurrencya . A hardverszálak számának alapértelmezett értéke a gépen egyéb korlátozások hiányában.
PPLParallelForeachEventGuid Egy kategória GUID azonosítója, amely az egyidejűségi futtatókörnyezet által aktivált ETW-eseményeket írja le, amelyek közvetlenül kapcsolódnak a parallel_for_each függvény használatához.
PPLParallelForEventGuid Egy kategória GUID azonosítója, amely az egyidejűségi futtatókörnyezet által aktivált ETW-eseményeket írja le, amelyek közvetlenül kapcsolódnak a parallel_for függvény használatához.
PPLParallelInvokeEventGuid Egy kategória GUID azonosítója, amely az egyidejűségi futtatókörnyezet által aktivált ETW-eseményeket írja le, amelyek közvetlenül kapcsolódnak a parallel_invoke függvény használatához.
ResourceManagerEventGuid Egy kategória GUID azonosítója, amely az egyidejűségi futtatókörnyezet által aktivált ETW-eseményeket írja le, amelyek közvetlenül kapcsolódnak az erőforrás-kezelőhöz.
ScheduleGroupEventGuid Az ütemezési csoportokhoz közvetlenül kapcsolódó egyidejűségi futtatókörnyezet által aktivált ETW-eseményeket leíró kategória GUID azonosítója.
SchedulerEventGuid Egy kategória GUID azonosítója, amely az egyidejűségi futtatókörnyezet által aktivált ETW-eseményeket írja le, amelyek közvetlenül kapcsolódnak az ütemező tevékenységéhez.
VirtualProcessorEventGuid A virtuális processzorokhoz közvetlenül kapcsolódó egyidejűségi futtatókörnyezet által aktivált ETW-eseményeket leíró kategória GUID azonosítója.

Követelmények

Fejléc: 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

Lásd még

Utalás