std::packaged_task

来自cppreference.com
< cpp‎ | thread

 
 
线程支持库
线程
(C++11)
this_thread 命名空间
(C++11)
(C++11)
(C++11)
互斥
(C++11)
通用锁管理
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
条件变量
(C++11)
期货
(C++11)
(C++11)
packaged_task
(C++11)
(C++11)
(C++11)
 
std::packaged_task
成员函数
原文:
Member functions
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
获得的结果
原文:
Getting the result
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
执行
原文:
Execution
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
 
定义于头文件 <future>
template< class > class packaged_task; //not defined
(1) (C++11 起)
template< class R, class Args... >
class packaged_task<R(Args...)>;
(2) (C++11 起)
。类模板std::packaged_task包装任何可调用的目标(功能,lambda表达式,绑定表达式,或其他功能对象),以便它可以异步调用,它的返回值或抛出的异常是存储在共享的状态,这可以通过std::future一个对象.
原文:
The class template std::packaged_task wraps any callable target (function, lambda expression, bind expression, or another function object) so that it can be invoked asynchronously, and its return value or exception thrown is stored in the shared state, which can be accessed through std::future objects.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
。就像std::functionstd::packaged_task是一个多态,分配器知道容器:存储调用的目标可能被分配在堆上或提供的分配器.
原文:
Just like std::function, std::packaged_task is a polymorphic, allocator-aware container: the stored callable target may be allocated on heap or with a provided allocator.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

目录

[编辑] 。成员函数。

构造的任务对象
原文:
constructs the task object
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

(公开成员函数) [编辑]
解构的任务对象
原文:
destructs the task object
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

(公开成员函数) [编辑]
移动的任务对象
原文:
moves the task object
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

(公开成员函数) [编辑]
任务对象的检查,如果有一个有效的功能
原文:
checks if the task object has a valid function
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

(公开成员函数) [编辑]
交换两个任务的对象
原文:
swaps two task objects
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

(公开成员函数) [编辑]
。获得的结果。
原文:
Getting the result
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
返回一个std::future与所承诺的结果
原文:
returns a std::future associated with the promised result
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

(公开成员函数) [编辑]
。执行。
原文:
Execution
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
执行函数
(公开成员函数) [编辑]
执行的结果是只有一次准备退出当前线程的功能
原文:
executes the function ensuring that the result is ready only once the current thread exits
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

(公开成员函数) [编辑]
复位放弃以前执行的任何存储结果的状态
原文:
resets the state abandoning any stored results of previous executions
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

(公开成员函数) [编辑]

[编辑] 。非成员函数。

特化 std::swap 算法
(函数模板) [编辑]

[编辑] 。 Helper类。

特化 std::uses_allocator 类型特性
(类模板特化) [编辑]

[编辑] 。为例。

#include <iostream>
#include <future>
#include <thread>
 
int main()
{
    std::packaged_task<int()> task([](){return 7;}); // wrap the function
    std::future<int> result = task.get_future();  // get a future
    std::thread(std::move(task)).detach(); // launch on a thread
    std::cout << "Waiting...";
    result.wait();
    std::cout << "Done!\nResult is " << result.get() << '\n';
}

输出:

Waiting...Done!
Result is 7

[编辑] 。另请参阅。

(C++11)
等待被异步设置的值
(类模板) [编辑]