std::future
Da cppreference.com.
![]() | Questa pagina è stata tradotta in modo automatico dalla versione in ineglese della wiki usando Google Translate. La traduzione potrebbe contenere errori e termini strani. Muovi il puntatore sopra al testo per vedere la versione originale. Puoi aiutarci a correggere gli gli errori. Per ulteriori istruzioni clicca qui. |
Elemento definito nell'header <future> | ||
template<class T >class future; | (1) | (dal C++11) |
template<class T >class future<T&>; | (2) | (dal C++11) |
template<> class future<void>; | (3) | (dal C++11) |
Il
std::future
modello di classe fornisce un meccanismo per accedere al risultato delle operazioni asincrone:Original:
The class template
std::future
provides a mechanism to access the result of asynchronous operations:The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
- Un'operazione asincrona (creato tramite std::async, std::packaged_task o std::promise) in grado di fornire un oggetto
std::future
al creatore di tale operazione asincrona.Original:An asynchronous operation (created via std::async, std::packaged_task, or std::promise) can provide astd::future
object to the creator of that asynchronous operation.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
- Il creatore dell'operazione asincrona può utilizzare una varietà di metodi per le query, aspettare, o estrarre un valore dal
std::future
. Questi metodi possono bloccare se l'operazione asincrona non ha ancora fornito un valore.Original:The creator of the asynchronous operation can then use a variety of methods to query, wait for, or extract a value from thestd::future
. These methods may block if the asynchronous operation has not yet provided a value.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
- Quando l'operazione asincrona è pronto per inviare un risultato al creatore, può farlo mediante la modifica dello stato condiviso (ad esempio std::promise::set_value) che è legata alla
std::future
del creatore.Original:When the asynchronous operation is ready to send a result to the creator, it can do so by modifying shared state (e.g. std::promise::set_value) that is linked to the creator'sstd::future
.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Si noti che i riferimenti
std::future
stato condiviso che non sia condivisa con altri oggetti di ritorno asincroni (a differenza std::shared_future). Original:
Note that
std::future
references shared state that is not shared with any other asynchronous return objects (as opposed to std::shared_future). The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[modifica]Membri funzioni
costruisce l'oggetto futuro Original: constructs the future object The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (metodo pubblico) | |
distrugge l'oggetto futuro Original: destructs the future object The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (metodo pubblico) | |
sposta l'oggetto futuro Original: moves the future object The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (metodo pubblico) | |
restituisce un shared_future riferimento al risultato associato al *this Original: returns a shared_future referring to the result associated to *this The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (metodo pubblico) | |
Original: Getting the result The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. | |
restituisce il risultato Original: returns the result The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (metodo pubblico) | |
Original: State The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. | |
Verifica se il futuro è stato condiviso con una promessa Original: checks if the future has shared state with a promise The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (metodo pubblico) | |
attende il risultato diventi disponibile Original: waits for the result to become available The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (metodo pubblico) | |
waits for the result, returns if it is not available for the specified timeout duration (metodo pubblico) | |
aspetta il risultato, restituisce se non è disponibile fino punto di tempo specificato è stato raggiunto Original: waits for the result, returns if it is not available until specified time point has been reached The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (metodo pubblico) |
[modifica]Esempio
#include <iostream>#include <future>#include <thread> int main(){// future from a packaged_taskstd::packaged_task<int()> task([](){return7;});// wrap the function std::future<int> f1 = task.get_future();// get a futurestd::thread(std::move(task)).detach();// launch on a thread // future from an async() std::future<int> f2 =std::async(std::launch::async, [](){return8;}); // future from a promisestd::promise<int> p; std::future<int> f3 = p.get_future();std::thread([](std::promise<int>& p){ p.set_value(9);}, std::ref(p)).detach(); std::cout<<"Waiting..."; f1.wait(); f2.wait(); f3.wait();std::cout<<"Done!\nResults are: "<< f1.get()<<' '<< f2.get()<<' '<< f3.get()<<'\n';}
Output:
Waiting...Done! Results are: 7 8 9
[modifica]Vedi anche
(C++11) | esegue una funzione in modo asincrono (potenzialmente in un nuovo thread) e restituisce un std::future che conterrà il risultato Original: runs a function asynchronously (potentially in a new thread) and returns a std::future that will hold the result The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (funzione di modello) |
(C++11) | attende un valore (eventualmente riferimento altri futuri) che è impostato in modo asincrono Original: waits for a value (possibly referenced by other futures) that is set asynchronously The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (classe template) |