【发布时间】:2017-12-13 15:56:21
【问题描述】:
我正在尝试对我的图像记录应用程序进行多线程处理,以优化性能并防止 GUI 冻结。 我试图创建一个 CaptureThread 的向量(我的类扩展了 QThread),但它没有编译...
这是我的代码:
vector<CaptureThread> v_ct_Threads(i_SelectedCameras);
for(int i = 0; i < i_SelectedCameras; i++) {
v_ct_Threads[i] = CaptureThread(i, qsb_Duration->value());
v_ct_Threads[i].start();
}
for(int i = 0; i < i_SelectedCameras; i++) {
v_ct_Threads[i].wait();
}
还有错误:
use of deleted function ‘CaptureThread& CaptureThread::operator=(CaptureThread&&)’
v_ct_Threads[i] = CaptureThread(i, qsb_Duration->value());
我猜这是一个愚蠢的错误,但我是 C++ 和 Qt 的初学者...
【问题讨论】:
-
你不能复制线程。也许
emplace_back可以提供帮助 -
你可能只需要一个 QThreadPool。