CopperSpice API  1.7.2
QRunnable Class Referenceabstract

Base class for all runnable objects. More...

Inherited by QDnsLookupRunnable, QHostInfoRunnable, QtConcurrent::RunFunctionTaskBase< T >, QtConcurrent::ThreadEngineBase, and QtConcurrent::RunFunctionTaskBase< void >.

Public Methods

 QRunnable ()
 
virtual ~QRunnable ()
 
bool autoDelete () const
 
virtual void run () = 0
 
void setAutoDelete (bool autoDelete)
 

Friends

class QThreadPool
 

Detailed Description

The QRunnable class is the base class for all runnable objects. It is an interface for representing a task or piece of code that needs to be executed, represented by your reimplementation of the run() function.

You can use QThreadPool to execute your code in a separate thread. QThreadPool deletes the QRunnable automatically if autoDelete() returns true (the default). Use setAutoDelete() to change the auto-deletion flag.

QThreadPool supports executing the same QRunnable more than once by calling QThreadPool::tryStart(this) from within the run() function. If autoDelete is enabled the QRunnable will be deleted when the last thread exits the run function. Calling QThreadPool::start() multiple times with the same QRunnable when autoDelete is enabled creates a race condition and is not recommended.

See also
QThreadPool

Constructor & Destructor Documentation

QRunnable::QRunnable ( )
inline

Constructs a QRunnable. Auto-deletion is enabled by default.

See also
autoDelete(), setAutoDelete()
QRunnable::~QRunnable ( )
inlinevirtual

Destroys the current QRunnable object.

Method Documentation

bool QRunnable::autoDelete ( ) const
inline

Returns true is auto-deletion is enabled, false otherwise. If auto-deletion is enabled, QThreadPool will automatically delete this runnable after calling run(), otherwise ownership remains with the application programmer.

See also
setAutoDelete(), QThreadPool
void QRunnable::run ( )
pure virtual

Implement this pure virtual function in your subclass.

void QRunnable::setAutoDelete ( bool  autoDelete)
inline

Enables auto-deletion if autoDelete is true, otherwise auto-deletion is disabled. If auto-deletion is enabled, QThreadPool will automatically delete this runnable after calling run(), otherwise ownership remains with the application programmer.

This flag must be set before calling QThreadPool::start(). Calling this function after QThreadPool::start() results in undefined behavior.

See also
autoDelete(), QThreadPool