QThread類參考
轉自:http://www.kuqin.com/qtdocument/qthread.html
QThread類提供了與系統無關的執行緒。 詳情請見……
#include <qthread.h>
繼承了Qt。
公有成員
-
QThread ()
-
virtual ~QThread ()
-
bool wait ( unsigned long time = ULONG_MAX )
-
void start ()
-
bool finished () const
-
bool running () const
靜態公有成員
-
Qt::HANDLE currentThread ()
-
void postEvent ( QObject * receiver, QEvent * event )
-
void exit ()
保護成員
-
virtual void run () = 0
靜態保護成員
-
void sleep ( unsigned long secs )
-
void msleep ( unsigned long msecs )
-
void usleep ( unsigned long usecs )
詳細描述
QThread類提供了與系統無關的執行緒。QThread代表在程式中一個單獨的執行緒控制,在多工作業系統中,它和同一程式中的其它執行緒共享資料,但執行起來就像一個單獨的程式一樣。它不是在main()中開始,QThread是在run()中開始執行的。你繼承run()並且在其中包含你的程式碼。例如:
class MyThread : public QThread { public: virtual void run(); }; void MyThread::run() { for( int count = 0; count < 20; count++ ) { sleep( 1 ); qDebug( "Ping!" ); } } int main() { MyThread a; MyThread b; a.start(); b.start(); a.wait(); b.wait(); }
這將會開始兩個執行緒,每個執行緒在螢幕上寫20次“Ping!”並且退出。在main()的結尾呼叫wait()是必需的,因為main()的結束會終結整個程式,它會殺掉所有其它執行緒。當每個MyThread執行到MyThread::run()結尾時,它就結束執行,就好像一個應用程式離開main()時所做的一樣。
成員函式文件
QThread::QThread ()
構造一個新的執行緒。這個執行緒將直到start()被呼叫的時候才開始執行。QThread::~QThread () [虛]
QThread解構函式。注意刪除QThread物件將不會停止它所代表的執行緒的執行。刪除一個執行中的執行緒(比如finished()返回假)將可能導致程式崩潰這樣的結果。你可以對執行緒執行wait()來確定程式執行結束。
Qt::HANDLE QThread::currentThread () [靜態]
這返回當前執行的執行緒的執行緒控制程式碼。警告:這個函式返回的控制程式碼用於內部目的並且不應該在任何應用程式程式碼中使用它。在Windows中,返回值是當前執行緒的假控制程式碼,並且它不能用於數字比較。
void QThread::exit () [靜態]
結束呼叫執行緒的執行並且喚醒任何等待它終止的執行緒。bool QThread::finished () const
如果執行緒完成,返回真,否則返回假。void QThread::msleep ( unsigned long msecs ) [靜態 保護]
與系統無關的睡眠。這將導致當前執行緒睡眠msecs毫秒。void QThread::postEvent ( QObject * receiver, QEvent * event ) [靜態]
提供一個從一個不是事件執行緒的執行緒傳送一個事件到一個物件的方法。如下是已經完成的:
- event被放進佇列;
- 事件執行緒被喚醒;
- 事件執行緒傳送事件到receiver物件。
因為QThread::postEvent()傳送事件到QApplication的事件佇列,你必須在呼叫QThread::postEvent()之前建立QApplication物件。
事件必須在堆上分配,因為傳送事件的佇列會得到事件的所有權並且一旦這個事件被髮送成功,它將被刪除。
也可以參考QApplication::postEvent()。
void QThread::run () [純虛 保護]
這個方法是純虛的,並且為了能夠做有用的工作必須在繼承類中被重新實現。這個方法的返回將會結束執行緒的執行。
也可以參考wait()。
bool QThread::running () const
如果執行緒正在執行,返回真,否則返回假。void QThread::sleep ( unsigned long secs ) [靜態 保護]
與系統無關的睡眠。這將導致當前執行緒睡眠secs秒。void QThread::start ()
通過呼叫run()(必須在QThread子類中重新實現來包含你的程式碼)開始這個執行緒的執行。如果你試圖開始一個已經執行的執行緒,這個呼叫將一直等待,直到這個執行緒完成,然後再重新開始這個執行緒。void QThread::usleep ( unsigned long usecs ) [靜態 保護]
與系統無關的睡眠。這將導致當前執行緒睡眠usecs微秒。bool QThread::wait ( unsigned long time = ULONG_MAX )
這將提供和POSIX pthread_join相似的功能。一個執行緒呼叫了它將會一直阻塞,知道下述條件之一滿足時繼續:- 這個QThread物件所關聯的執行緒已經結束執行(比如,當它從run()中返回)。如果執行緒完成,這個函式將返回真。如果執行緒還沒有開始呢,這個函式也返回真。
- time毫秒過去了。如果time是ULONG_MAX(預設值),然後等待將永遠不會超時(執行緒必須從run()中返回)。如果等待時間到了,這個函式將返回假。
這個檔案是Qt工具包一部分。 版權所有 © 1995-2002 Trolltech。保留所有權利。
Copyright © 2002 Trolltech | Trademarks | 譯者:Cavendish |
Qt 3.0.5版
|
相關文章
- 美食類網頁設計版式參考網頁
- TIDB 考試 參考TiDB
- UI | 一組酒店類APP介面設計參考UIAPP
- 一組郵箱類APP介面設計參考APP
- OSI參考模型和TCP/IP參考模型模型TCP
- javamail參考JavaAI
- 【QT】子類化QThread實現多執行緒QTthread執行緒
- Laravel 驗證碼類實現 (供學習、參考)Laravel
- WebApiClient效能參考WebAPIclient
- OSI參考模型模型
- 模擬考試參考程式碼
- Blender參考API用法API
- LVS - ipvsadm命令參考
- Oracle ASMCMD命令參考OracleASM
- SQL優化參考SQL優化
- openGauss ODBC介面參考
- Latex—參考文獻
- CloudBeaver 參考架構Cloud架構
- 參考文獻合集
- echarts markLine參考線Echarts
- PyQtGraph繪圖參考QT繪圖
- oracle 參考資料Oracle
- 前端構建:3類13種熱門工具的選型參考前端
- spring-boot參考文章Springboot
- Spring Boot 參考指南(Hazelcast)Spring BootAST
- HTML標籤參考(一)HTML
- Elasticsearch 參考指南(介紹)Elasticsearch
- http http headers參考文件HTTPHeader
- Oracle官方參考資料Oracle
- 前端知識點參考前端
- JavaScript物件參考手冊JavaScript物件
- HTML 字元實體參考HTML字元
- openGauss 配置檔案參考
- docker 配置引數參考Docker
- multipath配置詳細參考
- mysql許可權參考MySql
- JavaScript Math(數學) 參考JavaScript
- em字型大小參考物件物件
- docker 安裝 MySQL (參考)DockerMySql