Для проверки исключения в потоке можно использовать несколько подходов, зависящих от того, как поток был создан и как обрабатываются его результаты.
Использование std::future
и std::async
:
Если поток был запущен с помощью std::async
, результатом будет объект std::future
. Вызов методов get()
или wait()
на этом объекте приведет к тому, что исключение, выброшенное в потоке, будет повторно выброшено в вызывающем потоке.
cpp
Использование std::promise
и std::future
:
Можно явно передать std::promise
в поток или хранить его вне потока, чтобы поток мог сохранить исключение.
cpp
Для проверки исключения в потоке можно использовать несколько подходов, зависящих от того, как поток был создан и как обрабатываются его результаты.
Использование std::future
и std::async
:
Если поток был запущен с помощью std::async
, результатом будет объект std::future
. Вызов методов get()
или wait()
на этом объекте приведет к тому, что исключение, выброшенное в потоке, будет повторно выброшено в вызывающем потоке.
cpp
Использование std::promise
и std::future
:
Можно явно передать std::promise
в поток или хранить его вне потока, чтобы поток мог сохранить исключение.
cpp
Зарегистрируйтесь или войдите, чтобы получить доступ к полным ответам на все вопросы из банка вопросов.