std::packaged_task<R(Args...)>::operator()
来自 cppreference.cn
< cpp | thread | packaged_task
| void operator()( ArgTypes... args ); |
(C++11 起) | |
调用被存储的任务,如同通过 INVOKE<R>(f, args...),其中 f 是被存储的任务。任务的返回值或任何抛出的异常被存储于共享状态中。共享状态被设为就绪,并且任何等待于此的线程均被解除阻塞。
目录 |
[编辑] 参数
| args | - | 调用被存储任务时传递的参数 |
[编辑] 返回值
(无)
[编辑] 异常
对于下列错误条件抛出 std::future_error
- 被存储的任务已被调用。错误类别设为 promise_already_satisfied。
- *this 无共享状态。错误类别设为 no_state。
[编辑] 示例
| 本节不完整 原因:无示例 |
[编辑] 缺陷报告
下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。
| 缺陷报告 | 应用于 | 发布时的行为 | 正确的行为 |
|---|---|---|---|
| LWG 2142 | C++11 | 对 operator() 的成功调用同步于 对与 *this 共享其共享状态的 std::future 或 std::shared_future 的任何成员函数的调用 |
除共享状态已提供的保证外 无额外同步保证 (原文:guarantees other than what is already provided by shared state) |
[编辑] 参阅
| 执行函数,确保仅在当前线程退出后结果才就绪 (公开成员函数) |