source: trunk/src/corelib/concurrent/qrunnable.cpp

Last change on this file was 846, checked in by Dmitry A. Kuminov, 14 years ago

trunk: Merged in qt 4.7.2 sources from branches/vendor/nokia/qt.

File size: 4.0 KB
Line 
1/****************************************************************************
2**
3** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
4** All rights reserved.
5** Contact: Nokia Corporation ([email protected])
6**
7** This file is part of the QtCore module of the Qt Toolkit.
8**
9** $QT_BEGIN_LICENSE:LGPL$
10** Commercial Usage
11** Licensees holding valid Qt Commercial licenses may use this file in
12** accordance with the Qt Commercial License Agreement provided with the
13** Software or, alternatively, in accordance with the terms contained in
14** a written agreement between you and Nokia.
15**
16** GNU Lesser General Public License Usage
17** Alternatively, this file may be used under the terms of the GNU Lesser
18** General Public License version 2.1 as published by the Free Software
19** Foundation and appearing in the file LICENSE.LGPL included in the
20** packaging of this file. Please review the following information to
21** ensure the GNU Lesser General Public License version 2.1 requirements
22** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
23**
24** In addition, as a special exception, Nokia gives you certain additional
25** rights. These rights are described in the Nokia Qt LGPL Exception
26** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
27**
28** GNU General Public License Usage
29** Alternatively, this file may be used under the terms of the GNU
30** General Public License version 3.0 as published by the Free Software
31** Foundation and appearing in the file LICENSE.GPL included in the
32** packaging of this file. Please review the following information to
33** ensure the GNU General Public License version 3.0 requirements will be
34** met: http://www.gnu.org/copyleft/gpl.html.
35**
36** If you have questions regarding the use of this file, please contact
37** Nokia at [email protected].
38** $QT_END_LICENSE$
39**
40****************************************************************************/
41
42/*!
43 \class QRunnable
44 \since 4.4
45 \brief The QRunnable class is the base class for all runnable objects.
46
47 \ingroup thread
48
49 The QRunnable class is an interface for representing a task or
50 piece of code that needs to be executed, represented by your
51 reimplementation of the run() function.
52
53 You can use QThreadPool to execute your code in a separate
54 thread. QThreadPool deletes the QRunnable automatically if
55 autoDelete() returns true (the default). Use setAutoDelete() to
56 change the auto-deletion flag.
57
58 QThreadPool supports executing the same QRunnable more than once
59 by calling QThreadPool::tryStart(this) from within the run() function.
60 If autoDelete is enabled the QRunnable will be deleted when
61 the last thread exits the run function. Calling QThreadPool::start()
62 multiple times with the same QRunnable when autoDelete is enabled
63 creates a race condition and is not recommended.
64
65 \sa QThreadPool
66*/
67
68/*! \fn QRunnable::run()
69 Implement this pure virtual function in your subclass.
70*/
71
72/*! \fn QRunnable::QRunnable()
73 Constructs a QRunnable. Auto-deletion is enabled by default.
74
75 \sa autoDelete(), setAutoDelete()
76*/
77
78/*! \fn QRunnable::~QRunnable()
79 QRunnable virtual destructor.
80*/
81
82/*! \fn bool QRunnable::autoDelete() const
83
84 Returns true is auto-deletion is enabled; false otherwise.
85
86 If auto-deletion is enabled, QThreadPool will automatically delete
87 this runnable after calling run(); otherwise, ownership remains
88 with the application programmer.
89
90 \sa setAutoDelete(), QThreadPool
91*/
92
93/*! \fn bool QRunnable::setAutoDelete(bool autoDelete)
94
95 Enables auto-deletion if \a autoDelete is true; otherwise
96 auto-deletion is disabled.
97
98 If auto-deletion is enabled, QThreadPool will automatically delete
99 this runnable after calling run(); otherwise, ownership remains
100 with the application programmer.
101
102 Note that this flag must be set before calling
103 QThreadPool::start(). Calling this function after
104 QThreadPool::start() results in undefined behavior.
105
106 \sa autoDelete(), QThreadPool
107*/
Note: See TracBrowser for help on using the repository browser.