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
RevLine 
[2]1/****************************************************************************
2**
[846]3** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
[561]4** All rights reserved.
5** Contact: Nokia Corporation ([email protected])
[2]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**
[561]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.
[2]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**
[561]36** If you have questions regarding the use of this file, please contact
37** Nokia at [email protected].
[2]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
[561]47 \ingroup thread
48
[2]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.