Loading...
Searching...
No Matches
juce::TimeSliceThread Class Reference

## Detailed Description

A thread that keeps a list of clients, and calls each one in turn, giving them all a chance to run some sort of short task.

See also
  TimeSliceClient, Thread

The documentation for this class was generated from the following file:

- juce_core/threads/juce_TimeSliceThread.h

Inheritance diagram for juce::TimeSliceThread:

## Public Member Functions

| TimeSliceThread (const String &threadName)
| Creates a TimeSliceThread.
| ~TimeSliceThread () override
| Destructor.
void | addTimeSliceClient (TimeSliceClient *clientToAdd, int millisecondsBeforeStarting=0)
| Adds a client to the list.
void | moveToFrontOfQueue (TimeSliceClient *clientToMove)
| If the given client is waiting in the queue, it will be moved to the front and given a time-slice as soon as possible.
void | removeTimeSliceClient (TimeSliceClient *clientToRemove)
| Removes a client from the list.
void | removeAllClients ()
| Removes all the active and pending clients from the list.
int | getNumClients () const
| Returns the number of registered clients.
TimeSliceClient * | getClient (int index) const
| Returns one of the registered clients.
bool | contains (const TimeSliceClient *) const
| Returns true if the client is currently registered.
Public Member Functions inherited from juce::Thread
| Thread (const String &threadName, size_t threadStackSize=osDefaultStackSize)
| Creates a thread.
virtual | ~Thread ()
| Destructor.
virtual void | run ()=0
| Must be implemented to perform the thread's actual code.
bool | startThread ()
| Attempts to start a new thread with default ('Priority::normal') priority.
bool | startThread (Priority newPriority)
| Attempts to start a new thread with a given priority.
bool | startRealtimeThread (const RealtimeOptions &options)
| Starts the thread with realtime performance characteristics on platforms that support it.
bool | stopThread (int timeOutMilliseconds)
| Attempts to stop the thread running.
bool | isThreadRunning () const
| Returns true if the thread is currently active.
void | signalThreadShouldExit ()
| Sets a flag to tell the thread it should stop.
bool | threadShouldExit () const
| Checks whether the thread has been told to stop running.
bool | waitForThreadToExit (int timeOutMilliseconds) const
| Waits for the thread to stop.
void | addListener (Listener *)
| Add a listener to this thread which will receive a callback when signalThreadShouldExit was called on this thread.
void | removeListener (Listener *)
| Removes a listener added with addListener.
bool | isRealtime () const
| Returns true if this Thread represents a realtime thread.
void | setAffinityMask (uint32 affinityMask)
| Sets the affinity mask for the thread.
bool | wait (double timeOutMilliseconds) const
| Suspends the execution of this thread until either the specified timeout period has elapsed, or another thread calls the notify() method to wake it up.
void | notify () const
| Wakes up the thread.
ThreadID | getThreadId () const noexcept
| Returns the ID of this thread.
const String & | getThreadName () const noexcept
| Returns the name of the thread.

## Additional Inherited Members

Public Types inherited from juce::Thread
enum class | Priority { highest = 2 , high = 1 , normal = 0 , low = -1 , background = -2 }
| The different runtime priorities of non-realtime threads. More...
using | ThreadID = void*
| A value type used for thread IDs.
Static Public Member Functions inherited from juce::Thread
static bool | launch (std::function< void()> functionToRun)
| Invokes a lambda or function on its own thread with the default priority.
static bool | launch (Priority priority, std::function< void()> functionToRun)
| Invokes a lambda or function on its own thread with a custom priority.
static bool | currentThreadShouldExit ()
| Checks whether the current thread has been told to stop running.
static void JUCE_CALLTYPE | setCurrentThreadAffinityMask (uint32 affinityMask)
| Changes the affinity mask for the caller thread.
static void JUCE_CALLTYPE | sleep (int milliseconds)
| Suspends the execution of the current thread until the specified timeout period has elapsed (note that this may not be exact).
static void JUCE_CALLTYPE | yield ()
| Yields the current thread's CPU time-slot and allows a new thread to run.
static ThreadID JUCE_CALLTYPE | getCurrentThreadId ()
| Returns an id that identifies the caller thread.
static Thread *JUCE_CALLTYPE | getCurrentThread ()
| Finds the thread object that is currently running.
static void JUCE_CALLTYPE | setCurrentThreadName (const String &newThreadName)
| Changes the name of the caller thread.
static void | initialiseJUCE (void *jniEnv, void *jContext)
| Initialises the JUCE subsystem for projects not created by the Projucer.
Static Public Attributes inherited from juce::Thread
static constexpr size_t | osDefaultStackSize { 0 }
Protected Member Functions inherited from juce::Thread
Priority | getPriority () const
| Returns the current priority of this thread.
bool | setPriority (Priority newPriority)
| Attempts to set the priority for this thread.

## Constructors and Destructors

## TimeSliceThread()

juce::TimeSliceThread::TimeSliceThread | ( | const String & | threadName | ) |

explicit

Creates a TimeSliceThread.

When first created, the thread is not running. Use the startThread() method to start it.

Referenced by contains().

## ~TimeSliceThread()

juce::TimeSliceThread::~TimeSliceThread | ( |  | ) |

override

Destructor.

Deleting a Thread object that is running will only give the thread a brief opportunity to stop itself cleanly, so it's recommended that you should always call stopThread() with a decent timeout before deleting, to avoid the thread being forcibly killed (which is a Bad Thing).

## Member Functions

## addTimeSliceClient()

void juce::TimeSliceThread::addTimeSliceClient | ( | TimeSliceClient * | clientToAdd,
|  | int | millisecondsBeforeStarting = 0 )

Adds a client to the list.

The client's callbacks will start after the number of milliseconds specified by millisecondsBeforeStarting (and this may happen before this method has returned).

## moveToFrontOfQueue()

void juce::TimeSliceThread::moveToFrontOfQueue | ( | TimeSliceClient * | clientToMove | ) |

If the given client is waiting in the queue, it will be moved to the front and given a time-slice as soon as possible.

If the specified client has not been added, nothing will happen.

## removeTimeSliceClient()

void juce::TimeSliceThread::removeTimeSliceClient | ( | TimeSliceClient * | clientToRemove | ) |

Removes a client from the list.

This method will make sure that all callbacks to the client have completely finished before the method returns.

## removeAllClients()

void juce::TimeSliceThread::removeAllClients | ( |  | ) |

Removes all the active and pending clients from the list.

This method will make sure that all callbacks to clients have finished before the method returns.

## getNumClients()

int juce::TimeSliceThread::getNumClients | ( |  | ) | const

Returns the number of registered clients.

## getClient()

TimeSliceClient * juce::TimeSliceThread::getClient | ( | int | index | ) | const

Returns one of the registered clients.

## contains()

bool juce::TimeSliceThread::contains | ( | const TimeSliceClient * |  | ) | const

Returns true if the client is currently registered.

References juce::Thread::run(), and TimeSliceThread().

### Purchase

Get JUCE

### Discover

What's New in JUCE Features

### Learn

Documentaion Tutorials Made with JUCE Resources

### Support

JUCE Forum Newsletter Archive

### About

Contact Us JUCE Legal JUCE Licensing FAQ

### Events

Audio Developer Conference
© Raw Material Software Limited