MSTL 1.4.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
异步行为

异步编程相关组件 更多...

class  shared_future< Res >
 共享future类模板 更多...
class  promise< Res >
 Promise类模板 更多...
class  future< Res >
 独占future类模板 更多...
class  future< Res & >
 引用类型的future特化 更多...
class  future< void >
 void类型的future特化 更多...
class  shared_future< Res & >
 引用类型的共享future特化 更多...
class  shared_future< void >
 void类型的共享future特化 更多...
struct  future_result< T >
 future结果类型转换 更多...
struct  future_result< void >
 void类型的future结果转换特化 更多...
class  packaged_task< Res(Args...)>
 异步任务包装类模板 更多...
class  promise< Res & >
 引用类型的promise特化 更多...
class  promise< void >
 void类型的promise特化 更多...

类型定义

template<typename Func, typename... Args>
using async_result_t = invoke_result_t<decay_t<Func>, decay_t<Args>...>
 异步调用结果类型推导
template<typename T>
using future_result_t = typename future_result<T>::type
 future结果类型别名

枚举

enum class  future_errc { future_errc::future_already_retrieved = 1 , future_errc::promise_already_satisfied , future_errc::no_state , future_errc::broken_promise }
 期值错误码枚举 更多...
enum class  future_status { future_status::ready , future_status::timeout , future_status::deferred }
 期值状态枚举 更多...
enum class  launch { launch::async = 1 , launch::deferred = 2 }
 异步启动策略枚举 更多...

函数

template<typename Func, typename... Args>
MSTL_NODISCARD future< async_result_t< Func, Args... > > async (launch policy, Func &&function, Args &&... args)
 异步执行函数(指定策略)
template<typename Func, typename... Args>
MSTL_NODISCARD future< async_result_t< Func, Args... > > async (Func &&function, Args &&... args)
 异步执行函数(默认策略)
template<typename T>
MSTL_ALWAYS_INLINE enable_if_t< is_void_v< T >, future_result_t< T > > get (future< T > &f)
 通用future结果获取函数

详细描述

异步编程相关组件

类型定义说明

◆ async_result_t

template<typename Func, typename... Args>
using async_result_t = invoke_result_t<decay_t<Func>, decay_t<Args>...>

异步调用结果类型推导

模板参数
Func可调用对象类型
Args参数类型
注解
用于async函数返回类型的推导

在文件 future.hpp124 行定义.

◆ future_result_t

template<typename T>
using future_result_t = typename future_result<T>::type

future结果类型别名

模板参数
T原始类型

在文件 future.hpp1190 行定义.

枚举类型说明

◆ future_errc

enum class future_errc
strong

期值错误码枚举

定义future/promise操作可能发生的错误类型。

枚举值
future_already_retrieved 

future已经被获取

promise_already_satisfied 

promise已经被满足

no_state 

没有关联的状态对象

broken_promise 

承诺被破坏

在文件 future.hpp62 行定义.

◆ future_status

enum class future_status
strong

期值状态枚举

表示future的等待状态。

枚举值
ready 

结果已就绪

timeout 

等待超时

deferred 

延迟执行

在文件 future.hpp75 行定义.

◆ launch

enum class launch
strong

异步启动策略枚举

控制async函数的执行策略。

枚举值
async 

异步执行,在新线程中运行

deferred 

延迟执行,在获取结果时运行

在文件 future.hpp88 行定义.

函数说明

◆ async() [1/2]

template<typename Func, typename... Args>
MSTL_NODISCARD future< async_result_t< Func, Args... > > async ( Func && function,
Args &&... args )

异步执行函数(默认策略)

模板参数
Func可调用类型
Args参数类型
参数
function要异步执行的函数
args函数参数
返回
关联的future对象

使用默认执行策略异步执行函数, 允许实现根据系统资源和函数特性选择最佳执行方式。

在文件 async.hpp72 行定义.

引用了 _MSTL, async(), async, deferred , 以及 forward().

◆ async() [2/2]

template<typename Func, typename... Args>
MSTL_NODISCARD future< async_result_t< Func, Args... > > async ( launch policy,
Func && function,
Args &&... args )

异步执行函数(指定策略)

模板参数
Func可调用类型
Args参数类型
参数
policy执行策略
function要异步执行的函数
args函数参数
返回
关联的future对象

根据指定的执行策略异步执行函数:

  • launch::async: 在新线程中异步执行
  • launch::deferred: 延迟执行,在等待结果时才执行
  • 混合策略: 实现定义的行为,通常优先选择异步执行

在文件 async.hpp38 行定义.

引用了 _INNER, _MSTL, async, forward(), make_shared() , 以及 move().

被这些函数引用 async().

◆ get()

template<typename T>
MSTL_ALWAYS_INLINE enable_if_t< is_void_v< T >, future_result_t< T > > get ( future< T > & f)

通用future结果获取函数

模板参数
Tvoid类型
参数
ffuture对象
返回
none_t

在文件 future.hpp1202 行定义.

引用了 future< Res >::get() , 以及 none.