Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Zahrňte standardní hlavičku <,> která bude definovat šablony tříd a podpůrné šablony, které zjednodušují spuštění funkce – pravděpodobně v samostatném vlákně – a načítají její výsledek. Výsledkem je buď hodnota vrácená funkcí, nebo výjimka, která je generována funkcí, ale není zachycena ve funkci.
Tato hlavička používá Concurrency Runtime (ConcRT), abyste ji mohli používat společně s dalšími mechanismy ConcRT. Další informace o ConcRT naleznete v tématu Concurrency Runtime.
Syntaxe
#include <future>
Poznámky
Poznámka:
V kódu, který je zkompilován pomocí /clr, je tato hlavička blokována.
Asynchronní zprostředkovatel ukládá výsledek volání funkce. Asynchronní návratový objekt se používá k načtení výsledku volání funkce. Přidružený asynchronní stav poskytuje komunikaci mezi asynchronním zprostředkovatelem a jedním nebo více asynchronními návratovými objekty.
Program nevytvoří přímo žádné přidružené asynchronní stavové objekty. Program vytvoří asynchronního zprostředkovatele, kdykoli ho potřebuje, a z něj vytvoří asynchronní návratový objekt, který sdílí přidružený asynchronní stav s poskytovatelem. Asynchronní zprostředkovatelé a asynchronní návratové objekty spravují objekty, které obsahují jejich sdílený přidružený asynchronní stav. Když poslední objekt, který odkazuje na přidružený asynchronní stav, uvolní, objekt, který obsahuje přidružený asynchronní stav je zničen.
Asynchronní zprostředkovatel nebo asynchronní návratový objekt, který nemá přidružený asynchronní stav, je prázdný.
Přidružený asynchronní stav je připravený pouze v případě, že jeho asynchronní zprostředkovatel uložil návratovou hodnotu nebo uložil výjimku.
Funkce šablony a šablony async promise tříd a packaged_task jsou asynchronní zprostředkovatelé. Šablony future tříd a shared_future popisují asynchronní návratové objekty.
Každá ze šablon promisetříd , futurea shared_future má specializaci pro typ void a částečnou specializaci pro ukládání a načítání hodnoty odkazem. Tyto specializace se liší od primární šablony pouze v podpisech a sémantikách funkcí, které ukládají a načítají vrácenou hodnotu.
Šablony future tříd a shared_future nikdy neblokují v jejich destruktory, s výjimkou jednoho případu, který je zachován kvůli zpětné kompatibilitě: Na rozdíl od všech ostatních budoucností, pro futureúkol nebo poslední shared_future– který je připojen k úkolu zahájen std::asyncs , bloky destruktoru, pokud úkol nedokončil; to znamená, že blokuje, pokud toto vlákno ještě volat .get() nebo .wait() úkol je stále spuštěný. Následující poznámka o použitelnosti byla přidána do popisu std::async v konceptu standardu: "[Poznámka: Pokud se budoucnost získaná z std::async přesune mimo místní obor, další kód, který bude používat budoucnost, musí vědět, že destruktor budoucnosti může blokovat, aby se sdílený stav připravil.--end poznámka]" Ve všech ostatních případech, future a shared_future destruktory jsou povinné a zaručuje se, že se nikdy nezablokují.
Členové
Třídy
| Název | Popis |
|---|---|
| future – třída | Popisuje asynchronní návratový objekt. |
| future_error – třída | Popisuje objekt výjimky, který může být vyvolán metodami typů, které spravují future objekty. |
| packaged_task – třída | Popisuje asynchronního zprostředkovatele, který je obálka volání a jejíž podpis volání je Ty(ArgTypes...). Přidružený asynchronní stav obsahuje kopii jeho volatelného objektu kromě potenciálního výsledku. |
| promise – třída | Popisuje asynchronního zprostředkovatele. |
| shared_future – třída | Popisuje asynchronní návratový objekt. Na rozdíl od objektu future může být asynchronní zprostředkovatel přidružený k libovolnému počtu shared_future objektů. |
Struktury
| Název | Popis |
|---|---|
| is_error_code_enum – struktura | Specializace, která označuje, že future_errc je vhodná pro uložení error_code. |
| uses_allocator – struktura | Specializace, která má vždy hodnotu true. |
Funkce
| Název | Popis |
|---|---|
| async | Představuje asynchronního zprostředkovatele. |
| future_category | Vrátí odkaz na error_category objekt, který charakterizuje chyby spojené s future objekty. |
| make_error_code | Vytvoří objekt error_code , který error_category charakterizuje future chyby. |
| make_error_condition | Vytvoří objekt error_condition , který error_category charakterizuje future chyby. |
| vyměnit | Vymění přidružený asynchronní stav jednoho promise objektu s jiným objektem. |
Výčty
| Název | Popis |
|---|---|
| future_errc | Poskytuje symbolické názvy chyb hlášených future_error třídou. |
| future_status | Poskytuje symbolické názvy z důvodů, proč může funkce časového čekání vrátit. |
| spustit | Představuje typ bitové masky, který popisuje možné režimy pro funkci asyncšablony . |