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

Last change on this file since 440 was 2, checked in by Dmitry A. Kuminov, 16 years ago

Initially imported qt-all-opensource-src-4.5.1 from Trolltech.

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