|
MSTL 1.4.0
A Modern C++ Library with extended functionality, web components, and utility libraries
|
异步任务包装类模板 更多...
#include <packaged_task.hpp>
Public 成员函数 | |
| packaged_task () noexcept | |
| 默认构造函数 | |
| template<typename Func, typename = enable_if_t<!is_same_v<packaged_task, remove_cvref_t<Func>>>> | |
| packaged_task (Func &&function) | |
| 构造函数 | |
| ~packaged_task () | |
| 析构函数 | |
| packaged_task (const packaged_task &)=delete | |
| 禁止拷贝构造 | |
| packaged_task & | operator= (const packaged_task &)=delete |
| 禁止拷贝赋值 | |
| packaged_task (packaged_task &&other) noexcept | |
| 移动构造函数 | |
| packaged_task & | operator= (packaged_task &&other) noexcept |
| 移动赋值运算符 | |
| void | swap (packaged_task &other) noexcept |
| 交换两个packaged_task对象 | |
| bool | valid () const noexcept |
| 检查任务是否有效 | |
| future< Res > | get_future () |
| 获取关联的future对象 | |
| void | operator() (Args... args) |
| 执行任务 | |
| void | make_ready_at_thread_exit (Args... args) |
| 在线程退出时标记任务完成 | |
| void | reset () |
| 重置任务 | |
异步任务包装类模板
| Res | 结果类型 |
| Args | 参数类型 |
包装可调用对象,提供异步执行能力,并将执行结果或异常传递给关联的future。
在文件 packaged_task.hpp 第 30 行定义.
|
inlinenoexcept |
默认构造函数
创建空的packaged_task对象,不关联任何任务。
在文件 packaged_task.hpp 第 41 行定义.
被这些函数引用 operator=(), operator=(), packaged_task(), packaged_task(), reset() , 以及 swap().
|
inlineexplicit |
构造函数
| Func | 可调用类型 |
| function | 要包装的可调用对象 |
创建包装指定函数的packaged_task对象。 函数签名必须与模板参数Res Args...兼容。
在文件 packaged_task.hpp 第 52 行定义.
|
inline |
|
inlinenoexcept |
|
inline |
|
inline |
在线程退出时标记任务完成
| args | 任务参数 |
| future_exception | 如果任务无效 |
执行任务但延迟结果设置,直到当前线程退出时才将结果传递给future。 适用于需要保证某些资源在结果设置前有效的场景。
在文件 packaged_task.hpp 第 133 行定义.
|
inline |
执行任务
| args | 任务参数 |
| future_exception | 如果任务无效 |
同步执行包装的任务,结果或异常会传递给关联的future。
在文件 packaged_task.hpp 第 120 行定义.
|
inlinenoexcept |
移动赋值运算符
| other | 要移动的packaged_task对象 |
在文件 packaged_task.hpp 第 83 行定义.
引用了 _MSTL, move() , 以及 packaged_task().
|
inline |
重置任务
| future_exception | 如果任务无效 |
重置任务状态,可以重新关联新的future。 原有任务函数保持不变,但会创建新的共享状态。
在文件 packaged_task.hpp 第 145 行定义.
引用了 _INNER , 以及 packaged_task().
|
inlinenoexcept |
交换两个packaged_task对象
| other | 要交换的packaged_task对象 |
在文件 packaged_task.hpp 第 92 行定义.
引用了 packaged_task().
|
inlinenoexcept |