1\section{\class{wxCriticalSectionLocker}}\label{wxcriticalsectionlocker} 2 3This is a small helper class to be used with \helpref{wxCriticalSection}{wxcriticalsection} 4objects. A wxCriticalSectionLocker enters the critical section in the 5constructor and leaves it in the destructor making it much more difficult to 6forget to leave a critical section (which, in general, will lead to serious 7and difficult to debug problems). 8 9Example of using it: 10 11\begin{verbatim} 12void Set Foo() 13{ 14 // gs_critSect is some (global) critical section guarding access to the 15 // object "foo" 16 wxCriticalSectionLocker locker(gs_critSect); 17 18 if ( ... ) 19 { 20 // do something 21 ... 22 23 return; 24 } 25 26 // do something else 27 ... 28 29 return; 30} 31\end{verbatim} 32 33Without wxCriticalSectionLocker, you would need to remember to manually leave 34the critical section before each {\tt return}. 35 36\wxheading{Derived from} 37 38None. 39 40\wxheading{Include files} 41 42<wx/thread.h> 43 44\wxheading{See also} 45 46\helpref{wxCriticalSection}{wxcriticalsection}, 47\helpref{wxMutexLocker}{wxmutexlocker} 48 49\latexignore{\rtfignore{\wxheading{Members}}} 50 51\membersection{wxCriticalSectionLocker::wxCriticalSectionLocker}\label{wxcriticalsectionlockerctor} 52 53\func{}{wxCriticalSectionLocker}{\param{wxCriticalSection\& }{criticalsection}} 54 55Constructs a wxCriticalSectionLocker object associated with given 56{\it criticalsection} and enters it. 57 58\membersection{wxCriticalSectionLocker::\destruct{wxCriticalSectionLocker}}\label{wxcriticalsectionlockerdtor} 59 60\func{}{\destruct{wxCriticalSectionLocker}}{\void} 61 62Destructor leaves the critical section. 63 64