CopperSpice API  1.9.1
QRunnable Class Referenceabstract

Base class for all runnable objects. More...

Inherited by QDnsLookupRunnable, QHostInfoRunnable, QtConcurrent::RunFunctionTaskBase< T >, QtConcurrent::ThreadEngineBase, 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 if 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

This method must be overridden 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