Doc: Remove section about how to start threads

- Incomplete: It doesn't talk about how to use a raw QThread, or
  QRunnable, or Qt Concurrent.
- Redundant: Its contents are already presented in QThread's class ref,
  and the line before this section links to the "Multithreading
  Technologies in Qt" overview page which provides a more complete intro

Also remove snippet markers that are no longer used.

Change-Id: I89b7bd72f10c8ffdfd9b7772e2493050aafc9c88
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
Sze Howe Koh 2013-09-10 21:08:01 +08:00 committed by The Qt Project
parent 6780f76ee0
commit 2171b057e3
4 changed files with 5 additions and 44 deletions

View File

@ -44,10 +44,7 @@
* demonstrates use of QThread, says hello in another thread and terminates
*/
//! [1]
// hellothread/hellothread.cpp
void HelloThread::run()
{
qDebug() << "hello from worker thread " << thread()->currentThreadId();
}
//! [1]

View File

@ -42,13 +42,12 @@
#define HELLOTHREAD_H
#include <QThread>
//! [1]
// hellothread/hellothread.h
class HelloThread : public QThread
{
Q_OBJECT
private:
void run();
};
//! [1]
#endif // HELLOTHREAD_H

View File

@ -41,7 +41,6 @@
#include <QtCore>
#include "hellothread.h"
//! [1]
int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
@ -51,4 +50,3 @@ int main(int argc, char *argv[])
thread.wait(); // do not exit before the thread is completed!
return 0;
}
//! [1]

View File

@ -179,42 +179,9 @@
\section1 Qt Thread Basics
QThread is a very convenient cross platform abstraction of native platform
threads. Starting a thread is very simple. Let us look at a short piece of
code that generates another thread which says hello in that thread and then
exits.
\snippet ../widgets/tutorials/threads/hellothread/hellothread.h 1
We derive a class from QThread and reimplement the \l{QThread::}{run()}
method.
\snippet ../widgets/tutorials/threads/hellothread/hellothread.cpp 1
The run method contains the code that will be run in a separate thread. In
this example, a message containing the thread ID will be printed.
QThread::start() will call the method in another thread.
\snippet ../widgets/tutorials/threads/hellothread/main.cpp 1
To start the thread, our thread object needs to be instantiated. The
\l{QThread::}{start()} method creates a new thread and calls the
reimplemented \l{QThread::}{run()} method in this new thread. Right after
\l{QThread::}{start()} is called, two program counters walk through the
program code. The main function starts with only the GUI thread running and
it should terminate with only the GUI thread running. Exiting the program
when another thread is still busy is a programming error, and therefore,
wait is called which blocks the calling thread until the
\l{QThread::}{run()} method has completed.
This is the result of running the code:
\code
//bad code
hello from GUI thread 3079423696
hello from worker thread 3076111216
\endcode
The following sections describe how QObjects interact with threads, how
programs can safely access data from multiple threads, and how asynchronous
execution produces results without blocking a thread.
\section2 QObject and Threads