gpt4 book ai didi

c++ - QtConcurrent::run 正确使用

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:21:23 26 4
gpt4 key购买 nike

我正在尝试使用一个在选定时间录制视频的功能,所以我使用一个信号来启动它,但 GUI 保持阻塞状态,所以我现在正在尝试使用 QtConcurrent::run 在单独的线程中完成。我有记录的类,所以我尝试以这种方式从同一个类调用它:

 void VideoProcessor::record(int index, int time, int frames, QString path){
QFuture<void> future = QtConcurrent::run(recordAsync,index,time,frames, path);

}

void VideoProcessor::recordAsync(int index, int time, int frames, QString path)
{
recording code ....

}

或者像这样来自其他地方:

void Controller::StartRecording(int index, int time, int frames, QString path)
{

QFuture<void> future = QtConcurrent::run(&this->videoProcessor,record,index,time,frames, path);
this->videoProcessor->record(index,time,frames,path);
}

但我显示了这个错误:

error: no matching function for call to 'run(ab::VideoProcessor**,
<unresolved overloaded function type>, int&, int&, int&, QString&)'
QFuture<void> future = QtConcurrent::run(&this>videoProcessor,record,index,time,frames,
path);

最佳答案

您应该提供指向对象的指针以及类成员函数的地址。如果你的函数有参数,你可以在最后传递它们:

QFuture<void> future = QtConcurrent::run(this, &VideoProcessor::recordAsync, index, time, frames, path);

关于c++ - QtConcurrent::run 正确使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25764286/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com