#include <wx/msgqueue.h>
wxMessageQueue allows passing messages between threads.
This class should be typically used to communicate between the main and worker threads. The main thread calls wxMessageQueue::Post and the worker thread calls wxMessageQueue::Receive.
T | For this class a message is an object of arbitrary type T. |
Notice that often there is a some special message indicating that the thread should terminate as there is no other way to gracefully shutdown a thread waiting on the message queue.
Public Member Functions | |
wxMessageQueue () | |
Default and only constructor. | |
bool | IsOk () const |
Returns true if the object had been initialized successfully, false if an error occurred. | |
wxMessageQueueError | Post (T const &msg) |
Add a message to this queue and signal the threads waiting for messages (i.e. | |
wxMessageQueueError | Receive (T &msg) |
Block until a message becomes available in the queue. | |
wxMessageQueueError | ReceiveTimeout (long timeout, T &msg) |
Block until a message becomes available in the queue, but no more than timeout milliseconds has elapsed. |
wxMessageQueue< T >::wxMessageQueue | ( | ) |
Default and only constructor.
Use wxMessageQueue::IsOk to check if the object was successfully initialized.
bool wxMessageQueue< T >::IsOk | ( | ) | const |
Returns true if the object had been initialized successfully, false if an error occurred.
wxMessageQueueError wxMessageQueue< T >::Post | ( | T const & | msg | ) |
Add a message to this queue and signal the threads waiting for messages (i.e.
the threads which called wxMessageQueue::Receive or wxMessageQueue::ReceiveTimeout).
This method is safe to call from multiple threads in parallel.
wxMessageQueueError wxMessageQueue< T >::Receive | ( | T & | msg | ) |
Block until a message becomes available in the queue.
Waits indefinitely long or until an error occurs.
The message is returned in msg.
wxMessageQueueError wxMessageQueue< T >::ReceiveTimeout | ( | long | timeout, | |
T & | msg | |||
) |
Block until a message becomes available in the queue, but no more than timeout milliseconds has elapsed.
If no message is available after timeout milliseconds then returns wxMSGQUEUE_TIMEOUT.
If timeout is 0 then checks for any messages present in the queue and returns immediately without waiting.
The message is returned in msg.
![]() |
[ top ] |