我想暂停我的程序几秒钟,我正在编写的程序,由c + + Qt.in事实上,当程序到达我的一个函数停止例如5秒,然后继续下一行。我应该什么做?如何暂停程序几秒钟?
该函数是一个类的成员函数,我想邻的工作(暂停)为类的每个实例...
我想暂停我的程序几秒钟,我正在编写的程序,由c + + Qt.in事实上,当程序到达我的一个函数停止例如5秒,然后继续下一行。我应该什么做?如何暂停程序几秒钟?
该函数是一个类的成员函数,我想邻的工作(暂停)为类的每个实例...
如果您正在使用QT5您可以使用下面的技巧:
QMutex mut;
mut.lock();
mut.tryLock(milliseconds);
mut.unlock(); // I am not sure if this is a necessity
用的Qt4,你可以互斥使用QWaitCondition::wait()
;
请记住,如果这是在你的界面线程中,你的GUI将冻结,直到间隔陡峭。
非常感谢你的完美答案... –
如果你真正需要做的是,你有几种选择
您可以通过继承的QThread,使他们的公共(那些被保护,因为它通常是一个坏主意)
使用QThread'ssleep
方法,或者你也可以用QTimer使用QEventLoopexec
在一起。将定时器的信号连接到QEventLoop的quit()
插槽。这会导致“非阻塞”等待,所以你的应用不会被冻结。
或者,也许你应该改为拆分代码为两种方法,使第二个中的slot
,并在适当的时候
编辑计时器调用它:有点像,在你吃的方法您使用QTimer::singleShot
调用finishEating
插槽经过X
秒。
您可能还需要阅读此:http://qt-project.org/doc/qt-5.0/qtcore/thread-basics.html
谢谢你...有帮助 –
这是在主线程还是工作线程? – RobbieE
您能否提供详细信息为什么要实现这一目标?我有一种感觉... – Kcvin
每个类的实例...请参阅编辑的问题,请 –