所以我发现我的 UI 程序上发生了一些问题,因为我没有使用线程。
我看了看,从我在文档中看到的 QFuture 似乎是我需要的,我是否认为当你有一个函数并且你只想在线程中运行它时使用它?
是的,所以假设我是正确的,我浏览了所有示例中显示的文档和类型代码,基本上它根本不起作用......
用户界面.cpp
#include <QFuture>
#include <QtConcurrent/QtConcurrentRun>
#include "something.h"
void UI::button_click()
{
something s;
QFuture<int> result = QtConcurrent::run(s.heavyFunction());
result.waitForFinished();
}
东西.cpp
int something::heavyFunction()
{
// heavy code here
return 42;
}
好的,显然这不是真正的代码,但这里与我的实际代码没有什么不同,但我收到以下错误
error C2780: 'QFuture<T> QtConcurrent::run(T (__cdecl *)(Param1),const Arg1 &)' : expects 2 arguments - 1 provided
它说这个错误大约 7 次,基本上说 1,2,3,4,5,6,7 参数预期 1 提供?
我从许多示例中获得了此代码,所以我缺少什么想法?