РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
806 of 815 menu

Метод get

Метод get класса future возвращает результат асинхронной операции. Если операция ещё не завершена, вызов get блокирует текущий поток до тех пор, пока результат не станет доступен. Метод не принимает параметров. После первого вызова get объект future становится недействительным, и повторный вызов приводит к неопределённому поведению. Если асинхронная операция завершилась исключением, то get повторно выбрасывает это исключение.

Синтаксис

fut.get()

Пример

Давайте запустим асинхронную задачу, которая возвращает число 42, и получим её результат с помощью метода get:

#include <iostream> #include <future> using namespace std; int main() { future<int> fut = async([]() { return 42; }); int res = fut.get(); cout << res << endl; return 0; }

Результат выполнения кода:

42

Пример

Давайте запустим асинхронную задачу, которая возвращает строку "abcde", и получим её результат:

#include <iostream> #include <future> #include <string> using namespace std; int main() { future<string> fut = async([]() { return string("abcde"); }); string res = fut.get(); cout << res << endl; return 0; }

Результат выполнения кода:

"abcde"

Пример

Давайте рассмотрим, как метод get повторно выбрасывает исключение, возникшее в асинхронной задаче:

#include <iostream> #include <future> #include <stdexcept> using namespace std; int main() { future<int> fut = async([]() { throw runtime_error("error"); return 0; }); try { int res = fut.get(); cout << res << endl; } catch (const exception& e) { cout << e.what() << endl; } return 0; }

Результат выполнения кода:

"error"

Смотрите также

  • класс future,
    который представляет результат асинхронной операции
  • метод wait,
    который ожидает завершения асинхронной операции
  • метод wait_for,
    который ожидает завершения операции с таймаутом
  • метод valid,
    который проверяет, связан ли объект future с общей задачей
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить