1

同一类的后台线程中是否可以调用方法?在没有 c++11 的情况下使用 C++/QT。或者每 5 秒重复一次运行 foo2。

例子

class MyClass
{
  public:
     void foo(...)
     {
        // in another thread run foo2
        foo2;
     }
  .
  .
  .
  protected:
     void foo2(...){}

}

谢谢

4

1 回答 1

4

在您可以使用的单独线程中运行某些功能QtConcurrent::run(我将其与 一起使用QFutureWatcher)。要每 5 秒左右运行一次,请使用QElapsedTimerclass

QFuture<void> future = QtConcurrent::run(this, &MyClass::foo2, ...foo2 arguments);

http://qt-project.org/doc/qt-4.8/qtconcurrentrun.html#run或在这里查看https://stackoverflow.com/search?q=QtConcurrent%3A%3Arun

或者你可以继承QThread,用你想在你的线程中发生的东西重新实现run(),然后创建你的线程的一个实例并在它上面调用start()。

于 2013-05-22T14:15:24.047 回答