我是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
对象?