wxThreadEvent Class Reference
[EventsThreading]

#include <wx/event.h>

Inheritance diagram for wxThreadEvent:
Inheritance graph
[legend]

Detailed Description

This class adds some simple functionalities to wxCommandEvent coinceived for inter-threads communications.

This event is not natively emitted by any control/class: this is just an helper class for the user. Its most important feature is the GetEventCategory() implementation which allows thread events to NOT be processed by wxEventLoopBase::YieldFor calls (unless the wxEVT_CATEGORY_THREAD is specified - which is never in wx code).

Library:  wxCore
Category:  Events, Threading
See also:
Multithreading Overview, wxEventLoopBase::YieldFor

Public Member Functions

 wxThreadEvent (wxEventType eventType=wxEVT_COMMAND_THREAD, int id=wxID_ANY)
 Constructor.
virtual wxEventClone () const
 Clones this event making sure that all internal members which use COW (only m_commandString for now; see Reference Counting) are unshared (see wxObject::UnShare).
virtual wxEventCategory GetEventCategory () const
 Returns wxEVT_CATEGORY_THREAD.
template<typename T >
void SetPayload (const T &payload)
 Sets custom data payload.
template<typename T >
GetPayload () const
 Get custom data payload.

List of all members.


Constructor & Destructor Documentation

wxThreadEvent::wxThreadEvent ( wxEventType  eventType = wxEVT_COMMAND_THREAD,
int  id = wxID_ANY 
)

Constructor.


Member Function Documentation

virtual wxEvent* wxThreadEvent::Clone (  )  const [virtual]

Clones this event making sure that all internal members which use COW (only m_commandString for now; see Reference Counting) are unshared (see wxObject::UnShare).

Implements wxEvent.

virtual wxEventCategory wxThreadEvent::GetEventCategory (  )  const [virtual]

Returns wxEVT_CATEGORY_THREAD.

This is important to avoid unwanted processing of thread events when calling wxEventLoopBase::YieldFor().

Reimplemented from wxEvent.

template<typename T >
T wxThreadEvent::GetPayload (  )  const [inline]

Get custom data payload.

Correct type is checked in debug builds.

Note:
This method is not available with Visual C++ 6.
Since:
2.9.1
See also:
SetPayload(), wxAny
template<typename T >
void wxThreadEvent::SetPayload ( const T &  payload  )  [inline]

Sets custom data payload.

The payload argument may be of any type that wxAny can handle (i.e. pretty much anything). Note that T's copy constructor must be thread-safe, i.e. create a copy that doesn't share anything with the original (see Clone()).

Note:
This method is not available with Visual C++ 6.
Since:
2.9.1
See also:
GetPayload(), wxAny
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines



wxWidgets logo

[ top ]