C++中如何详细运用std::packaged_task进行任务封装与调用?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1858个文字,预计阅读时间需要8分钟。
C++11中的std::packaged_task是一个模板类。它封装了任何可调用的目标(如函数、lambda表达式、bind表达式或函数对象),以便它可以通过异步方式进行调用。其返回值或抛出的异常被存储,可以通过std::future对象来访问。
C++11中的std::packaged_task是个模板类。std::packaged_task包装任何可调用目标(函数、lambda表达式、bind表达式、函数对象)以便它可以被异步调用。它的返回值或抛出的异常被存储于能通过std::future对象访问的共享状态中。
std::packaged_task类似于std::function,但是会自动将其结果传递给std::future对象。
std::packaged_task对象内部包含两个元素:(1).存储的任务(stored task)是一些可调用的对象(例如函数指针、成员或函数对象的指针)( A stored task, which is some callable object (such as a function pointer, pointer to member or function object))。(2).共享状态,它可以存储调用存储的任务(stored task)的结果,并可以通过std::future进行异步访问(A shared state, which is able to store the results of calling the stored task and be accessed asynchronously through a future)。
通过调用std::packaged_task的get_future成员将共享状态与std::future对象关联。
本文共计1858个文字,预计阅读时间需要8分钟。
C++11中的std::packaged_task是一个模板类。它封装了任何可调用的目标(如函数、lambda表达式、bind表达式或函数对象),以便它可以通过异步方式进行调用。其返回值或抛出的异常被存储,可以通过std::future对象来访问。
C++11中的std::packaged_task是个模板类。std::packaged_task包装任何可调用目标(函数、lambda表达式、bind表达式、函数对象)以便它可以被异步调用。它的返回值或抛出的异常被存储于能通过std::future对象访问的共享状态中。
std::packaged_task类似于std::function,但是会自动将其结果传递给std::future对象。
std::packaged_task对象内部包含两个元素:(1).存储的任务(stored task)是一些可调用的对象(例如函数指针、成员或函数对象的指针)( A stored task, which is some callable object (such as a function pointer, pointer to member or function object))。(2).共享状态,它可以存储调用存储的任务(stored task)的结果,并可以通过std::future进行异步访问(A shared state, which is able to store the results of calling the stored task and be accessed asynchronously through a future)。
通过调用std::packaged_task的get_future成员将共享状态与std::future对象关联。

