重复执行带螺纹的packaged_task

时间:2019-07-02 10:02:39

标签: multithreading c++11 stdthread packaged-task std-future

我是C ++ 11线程实用程序的新手。为了执行由多个框构建的算法,我选择在框周围使用std::packaged_task混合,std::future来同步所有内容,并选择std::thread以确保多线程。我的模式化算法是:

PrepareData0  -->  ProcessData0  -->  InterpretData0  |
                                                       --> InterpretGlobal
PrepareData1  -->  ProcessData1  -->  InterpretData1  |

由于这应该是处理视频,网络摄像头输出的不可中断的循环,所以我尝试仅创建一次任务,并在使用std::packaged_task::reset方法重置状态后重用它们。但是std::future_error似乎失败了。我目前唯一的选择是每次我要运行算法时都重新构建任务。

对我来说似乎有点矫kill过正。有没有简单的方法可以在线程中重用已经初始化的std::packaged_task对象?

0 个答案:

没有答案