可能在同一个类的后台线程中调用方法吗?使用C ++ / QT而不使用c ++ 11。 或者反复不断地用5秒钟来运行foo2。
实施例
class MyClass
{
public:
void foo(...)
{
// in another thread run foo2
foo2;
}
.
.
.
protected:
void foo2(...){}
}
感谢
答案 0 :(得分:4)
要在单独的线程中运行某个函数,您可以使用QtConcurrent::run
(我将其与QFutureWatcher
一起使用)。要每隔5秒钟运行一次,请使用QElapsedTimer
类
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()。