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::futureal creatore di tale operazione asincrona.Original:An asynchronous operation (created via std::async, std::packaged_task, or std::promise) can provide astd::futureobject 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 allastd::futuredel 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.
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 *thisOriginal: returns a shared_future referring to the result associated to *thisThe 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) | |
Esempio
#include <iostream>
#include <future>
#include <thread>
int main()
{
// future from a packaged_task
std::packaged_task<int()> task([](){ return 7; }); // wrap the function
std::future<int> f1 = task.get_future(); // get a future
std::thread(std::move(task)).detach(); // launch on a thread
// future from an async()
std::future<int> f2 = std::async(std::launch::async, [](){ return 8; });
// future from a promise
std::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
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) |