# wxCriticalSectionLocker Class Reference
[Threading]

`#include </home/work/projects/wx/2.9/wx/interface/wx/thread.h>`

## Detailed Description

This is a small helper class to be used with wxCriticalSection objects.

A wxCriticalSectionLocker enters the critical section in the constructor and leaves it in the destructor making it much more difficult to forget to leave a critical section (which, in general, will lead to serious and difficult to debug problems).

Example of using it:

        void Set Foo()
        {
            // gs_critSect is some (global) critical section guarding access to the
            // object "foo"
            wxCriticalSectionLocker locker(gs_critSect);

            if ( ... )
            {
                // do something
                ...

                return;
            }

            // do something else
            ...

            return;
        }

Without wxCriticalSectionLocker, you would need to remember to manually leave the critical section before each `return`.

##

Library: wxBase
Category: Threading

See also:
  wxCriticalSection, wxMutexLocker

## Public Member Functions

| wxCriticalSectionLocker (wxCriticalSection &criticalsection)
| Constructs a wxCriticalSectionLocker object associated with given criticalsection and enters it.
| ~wxCriticalSectionLocker ()
| Destructor leaves the critical section.

List of all members.

## Constructor & Destructor Documentation

wxCriticalSectionLocker::wxCriticalSectionLocker | ( | wxCriticalSection & | criticalsection | ) |

Constructs a wxCriticalSectionLocker object associated with given criticalsection and enters it.

wxCriticalSectionLocker::~wxCriticalSectionLocker | ( |  | ) |

Destructor leaves the critical section.

|  | [ top ]