2024年4月28日发(作者:)

QT 延时函数

Linux 、windows CE下程序开发(Shell,QT,EVC,EVB 编程) 2009-09-30 10:00:06 阅读1159 评论0 字

号:大中小

QT 延时函数包含在一个叫做QThread.h的类中(大小写自己改改)

在使用的时候 注意包含该文件#include

成员函数文档

QThread::QThread ()

构造一个新的线程。这个线程将直到start()被调用的时候才开始运行。

QThread::~QThread () [虚]

QThread析构函数。

注意删除QThread对象将不会停止它所代表的线程的运行。删除一个运行中的线程(比如

finished()返回假)将可能导致程序崩溃这样的结果。你可以对线程运行wait()来确定程序运

行结束。

Qt::HANDLE QThread::currentThread () [静态]

这返回当前执行的线程的线程句柄。

警告:这个函数返回的句柄用于内部目的并且

应该在任何应用程序代码中使用它。在

Windows中,返回值是当前线程的假句柄,并且它不能用于数字比较。

void QThread::exit () [静态]

结束调用线程的执行并且唤醒任何等待它终止的线程。

bool QThread::finished () const

如果线程完成,返回真,否则返回假。

voidQThread::msleep ( unsigned long msecs ) [静态 保护]

与系统无关的睡眠。这将导致当前线程睡眠msecs毫秒。

void QThread::postEvent ( QObject * receiver, QEvent * event ) [静态]

提供一个从一个不是事件线程的线程发送一个事件到一个对象的方法。

如下是已经完成的:

event被放进队列;

事件线程被唤醒;

事件线程发送事件到receiver对象。

重要的是请注意事件的事件处理器当它被调用时,它是被事件线程调用,而不是被调用

QThread::postEvent()的线程所调用。

因为QThread::postEvent()发送事件到QApplication的事件队列,你必须在调用

QThread::postEvent()之前创建QApplication对象。

事件必须在堆上分配,因为发送事件的队列会得到事件的所有权并且一旦这个事件被发送成

功,它将被删除。

也可以参考QApplication::postEvent()。

void QThread::run () [纯虚 保护]

这个方法是纯虚的,并且为了能够做有用的工作必须在继承类中被重新实现。这个方法的返

回将会结束线程的执行。

也可以参考wait()。

bool QThread::running () const

如果线程正在运行,返回真,否则返回假。

voidQThread::sleep ( unsigned long secs ) [静态 保护]

与系统无关的睡眠。这将导致当前线程睡眠secs秒。

void QThread::start ()

通过调用run()(必须在QThread子类中重新实现来包含你的代码)开始这个线程的执行。

如果你试图开始一个已经运行的线程,这个调用将一直等待,直到这个线程完成,然后再重

新开始这个线程。