Qt对线程的支持已经有很多年了(发布于2000年九月22日的
Qt2.2引入了
QThread类),
Qt 4.0版本的release则对其所有所支持平台默认地是对多线程支持的。(当然你也可以关掉对线程的支持,参见这里)。现在
Qt提供了不少类用于处理线程,让你我们首先预览一下:
QThreadQThread 是
Qt中一个对线程支持的核心的底层类。 每个线程对象代表了一个运行的线程。由于Qt的跨平台特性,
QThread成功隐藏了所有在不同操作系统里使用线程的平台相关性代码。
为了运用
QThread从而让代码在一个线程里运行,我们可以创建一个QThread的子类,并重载QThread::run() 方法:
class Thread : public QThread {
protected:
void run() {
/* your thread implementation goes here */
}
};接着,我们可以使用:
class Thread : public QThread {
protected:
void run() {
/* your thread implementation goes here */
}
};来真正的启动一个新的线程。 请注意,Qt 4.4版本之后,QThread不再支持抽象类;现在虚函数QThread::run()实际上是简单调用了QThread::exec(),而它启动了线程的事件循环。(更多信息见后文)
QRunnable 和 QThreadPoolQRunnable [doc.qt.nokia.com] 是一种轻量级的、以“run and forget”方式来在另一个线程开启任务的抽象类,为了实现这一功能,我们所需要做的全部事情是派生
QRunnable 类,并实现纯虚函数方法run()
class Task : public QRunnable {
public:
void run() {
/* your runnable implementation goes here */
}
};
Qt经典—Qt 线程类 时间: 2011-02-20 / 浏览次数: 0 views /
0个评论 发表评论 编辑本文 Qt对线程的支持已经有很多年了(发布于2000年九月22日的
Qt2.2引入了
QThread类),
Qt 4.0版本的release则对其所有所支持平台默认地是对多线程支持的。(当然你也可以关掉对线程的支持,参见这里)。现在
Qt提供了不少类用于处理线程,让你我们首先预览一下:
QThreadQThread 是
Qt中一个对线程支持的核心的底层类。 每个线程对象代表了一个运行的线程。由于Qt的跨平台特性,
QThread成功隐藏了所有在不同操作系统里使用线程的平台相关性代码。
为了运用
QThread从而让代码在一个线程里运行,我们可以创建一个QThread的子类,并重载QThread::run() 方法:
class Thread : public QThread {
protected:
void run() {
/* your thread implementation goes here */
}
};接着,我们可以使用:
class Thread : public QThread {
protected:
void run() {
/* your thread implementation goes here */
}
};来真正的启动一个新的线程。 请注意,Qt 4.4版本之后,QThread不再支持抽象类;现在虚函数QThread::run()实际上是简单调用了QThread::exec(),而它启动了线程的事件循环。(更多信息见后文)
QRunnable 和 QThreadPoolQRunnable [doc.qt.nokia.com] 是一种轻量级的、以“run and forget”方式来在另一个线程开启任务的抽象类,为了实现这一功能,我们所需要做的全部事情是派生
QRunnable 类,并实现纯虚函数方法run()
class Task : public QRunnable {
public:
void run() {
/* your runnable implementation goes here */
}
};上一篇: Qt经典—事件与事件循环 标签: QRunnable,
Qt,
QtConcurrent,
QThread,
QThreadPool 本文链接: Qt经典—Qt 线程类 版权所有: Venus, 转载请注明来源Venus并保留链接地址!
相关文章