Namespaces
Variants

std::future<T>:: wait

From cppreference.net

Concurrency support library
Threads
(C++11)
(C++20)
this_thread namespace
(C++11)
(C++11)
Cooperative cancellation
Mutual exclusion
Generic lock management
Condition variables
(C++11)
Semaphores
Latches and Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
Safe reclamation
Hazard pointers
Atomic types
(C++11)
(C++20)
Initialization of atomic types
(C++11) (deprecated in C++20)
(C++11) (deprecated in C++20)
Memory ordering
(C++11) (deprecated in C++26)
Free functions for atomic operations
Free functions for atomic flags
void wait ( ) const ;
(seit C++11)

Blockiert, bis das Ergebnis verfügbar wird. valid ( ) == true nach dem Aufruf.

Das Verhalten ist undefiniert, wenn valid ( ) == false vor dem Aufruf dieser Funktion.

Inhaltsverzeichnis

Parameter

(keine)

Rückgabewert

(keine)

Ausnahmen

Kann implementierungsdefinierte Ausnahmen auslösen.

Hinweise

Die Implementierungen sind angehalten, den Fall zu erkennen, wenn valid ( ) == false vor dem Aufruf und einen std::future_error mit einem Fehlerzustand von std::future_errc::no_state zu werfen.


Beispiel

#include <chrono>
#include <future>
#include <iostream>
#include <thread>
int fib(int n)
{
    if (n < 3)
        return 1;
    else
        return fib(n - 1) + fib(n - 2);
}
int main()
{
    std::future<int> f1 = std::async(std::launch::async, []() { return fib(40); });
    std::future<int> f2 = std::async(std::launch::async, []() { return fib(43); });
    std::cout << "waiting... " << std::flush;
    const auto start = std::chrono::system_clock::now();
    f1.wait();
    f2.wait();
    const auto diff = std::chrono::system_clock::now() - start;
    std::cout << std::chrono::duration<double>(diff).count() << " seconds\n";
    std::cout << "f1: " << f1.get() << '\n';
    std::cout << "f2: " << f2.get() << '\n';
}

Mögliche Ausgabe:

waiting... 1.61803 seconds
f1: 102334155
f2: 433494437

Siehe auch

wartet auf das Ergebnis, kehrt zurück, wenn es für die angegebene Zeitdauer nicht verfügbar ist
(öffentliche Mitgliedsfunktion)
wartet auf das Ergebnis, kehrt zurück, wenn es nicht verfügbar ist, bis der angegebene Zeitpunkt erreicht wurde
(öffentliche Mitgliedsfunktion)