我试图让我的应用程序在多个线程上运行,以提高其进程的效率。我在 Qt 的网站上找到QFuture
了可以帮助我的模板类。我试图在他们的一个例子中使用 like 。下面是我的类声明/定义的一部分。
class PreferencesWindow {
public:
PreferencesWindow(QWidget *parent = 0);
public slots:
void dbsChanged();
}
PreferencesWindow::PreferencesWindow(QWidget *parent = 0) {
QFuture<void> fns = run(dbsChanged);
}
当我尝试运行它时,我收到 48 个错误(来自这一行),例如:
error C2780: 'QFuture<FunctionObject::result_type> QtConcurrent::run(FunctionObject *,const Arg1 &)' : expects 2 arguments - 1 provided
我在哪里错了,应该如何在不同的线程上运行该插槽?
我为什么要这个? 此方法的执行最多可能需要 30 秒(它会检查一些数据库设置)。在此期间,GUI 被冻结,这将导致糟糕的用户体验,因此我认为这是一个很好的解决方案。