|
8# 我爱linux
Detailed Description
The QThread class provides platform-independent threads.
A QThread represents a separate thread of control within the program; it shares data with all the other threads within the process but executes independently in the way that a separate program does on a multitasking operating system. Instead of starting in main(), QThreads begin executing in run(). By default, run() starts the event loop by calling exec() (see below). To create your own threads, subclass QThread and reimplement run(). For example:
class MyThread : public QThread
{
public:
void run();
};
void MyThread::run()
{
QTcpSocket socket;
// connect QTcpSocket's signals somewhere meaningful
...
socket.connectToHost(hostName, portNumber);
exec();
}
This will create a QTcpSocket in the thread and then execute the thread's event loop. Use the start() method to begin execution. Execution ends when you return from run(), just as an application does when it leaves main(). QThread will notifiy you via a signal when the thread is started(), finished(), and terminated(), or you can use isFinished() and isRunning() to query the state of the thread. Use wait() to block until the thread has finished execution. |
|