【发布时间】:2013-04-15 13:58:29
【问题描述】:
所以我发现我的 UI 程序出现了一些问题,因为我没有使用线程。
我看了看,从我在文档中看到的 QFuture 似乎是我需要的,我认为当你有一个函数并且你只想在线程中运行它时使用它是对的吗?
正确,所以假设我是正确的,我浏览了所有示例中显示的文档和类型代码,基本上它根本不起作用......
UI.cpp
#include <QFuture>
#include <QtConcurrent/QtConcurrentRun>
#include "something.h"
void UI::button_click()
{
something s;
QFuture<int> result = QtConcurrent::run(s.heavyFunction());
result.waitForFinished();
}
something.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 提供?
我从许多示例中获得了这段代码,所以我缺少什么想法?
【问题讨论】: