X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0824e369691b4a23a484e1d258b6e4ea021b022a..d3fa4bc22e84e3ca4d88cc1772f2d414140a1017:/interface/wx/thread.h diff --git a/interface/wx/thread.h b/interface/wx/thread.h index 7be2745d13..0854cb5576 100644 --- a/interface/wx/thread.h +++ b/interface/wx/thread.h @@ -51,8 +51,6 @@ enum wxCondError { m_mutex = mutex; m_condition = condition; - - Create(); } virtual ExitCode Entry() @@ -279,7 +277,7 @@ public: Example: @code - wxDECLARE_EVENT(wxEVT_COMMAND_MYTHREAD_UPDATE, wxThreadEvent); + wxDECLARE_EVENT(myEVT_THREAD_UPDATE, wxThreadEvent); class MyFrame : public wxFrame, public wxThreadHelper { @@ -312,9 +310,9 @@ public: wxDECLARE_EVENT_TABLE(); }; - wxDEFINE_EVENT(wxEVT_COMMAND_MYTHREAD_UPDATE, wxThreadEvent) + wxDEFINE_EVENT(myEVT_THREAD_UPDATE, wxThreadEvent) wxBEGIN_EVENT_TABLE(MyFrame, wxFrame) - EVT_COMMAND(wxID_ANY, wxEVT_COMMAND_MYTHREAD_UPDATE, MyFrame::OnThreadUpdate) + EVT_THREAD(wxID_ANY, myEVT_THREAD_UPDATE, MyFrame::OnThreadUpdate) EVT_CLOSE(MyFrame::OnClose) wxEND_EVENT_TABLE() @@ -675,17 +673,6 @@ enum wxThreadError wxTHREAD_MISC_ERROR }; -/** - Defines the interval of priority -*/ -enum -{ - WXTHREAD_MIN_PRIORITY = 0u, - WXTHREAD_DEFAULT_PRIORITY = 50u, - WXTHREAD_MAX_PRIORITY = 100u -}; - - /** @class wxThread @@ -783,26 +770,17 @@ enum { m_pThread = new MyThread(this); - if ( m_pThread->Create() != wxTHREAD_NO_ERROR ) + if ( m_pThread->Run() != wxTHREAD_NO_ERROR ) { wxLogError("Can't create the thread!"); delete m_pThread; m_pThread = NULL; } - else - { - if (m_pThread->Run() != wxTHREAD_NO_ERROR ) - { - wxLogError("Can't create the thread!"); - delete m_pThread; - m_pThread = NULL; - } - // after the call to wxThread::Run(), the m_pThread pointer is "unsafe": - // at any moment the thread may cease to exist (because it completes its work). - // To avoid dangling pointers OnThreadExit() will set m_pThread - // to NULL when the thread dies. - } + // after the call to wxThread::Run(), the m_pThread pointer is "unsafe": + // at any moment the thread may cease to exist (because it completes its work). + // To avoid dangling pointers OnThreadExit() will set m_pThread + // to NULL when the thread dies. } wxThread::ExitCode MyThread::Entry() @@ -943,8 +921,7 @@ enum All threads other than the "main application thread" (the one running wxApp::OnInit() or the one your main function runs in, for example) are - considered "secondary threads". These include all threads created by Create() - or the corresponding constructors. + considered "secondary threads". GUI calls, such as those to a wxWindow or wxBitmap are explicitly not safe at all in secondary threads and could end your application prematurely. @@ -996,7 +973,7 @@ public: /** This constructor creates a new detached (default) or joinable C++ thread object. It does not create or start execution of the real thread - - for this you should use the Create() and Run() methods. + for this you should use the Run() method. The possible values for @a kind parameters are: - @b wxTHREAD_DETACHED - Creates a detached thread. @@ -1023,7 +1000,13 @@ public: to it (Ignored on platforms that don't support setting it explicitly, eg. Unix system without @c pthread_attr_setstacksize). - If you do not specify the stack size,the system's default value is used. + If you do not specify the stack size, the system's default value is used. + + @note + It is not necessary to call this method since 2.9.5, Run() will create + the thread internally. You only need to call Create() if you need to do + something with the thread (e.g. pass its ID to an external library) + before it starts. @warning It is a good idea to explicitly specify a value as systems' @@ -1113,12 +1096,9 @@ public: static wxThreadIdType GetMainId(); /** - Gets the priority of the thread, between zero and 100. + Gets the priority of the thread, between 0 (lowest) and 100 (highest). - The following priorities are defined: - - @b WXTHREAD_MIN_PRIORITY: 0 - - @b WXTHREAD_DEFAULT_PRIORITY: 50 - - @b WXTHREAD_MAX_PRIORITY: 100 + @see SetPriority() */ unsigned int GetPriority() const; @@ -1205,7 +1185,7 @@ public: wxThreadError Resume(); /** - Starts the thread execution. Should be called after Create(). + Starts the thread execution. Note that once you Run() a @b detached thread, @e any function call you do on the thread pointer (you must allocate it on the heap) is @e "unsafe"; @@ -1234,13 +1214,13 @@ public: static bool SetConcurrency(size_t level); /** - Sets the priority of the thread, between 0 and 100. - It can only be set after calling Create() but before calling Run(). + Sets the priority of the thread, between 0 (lowest) and 100 (highest). - The following priorities are defined: - - @b WXTHREAD_MIN_PRIORITY: 0 - - @b WXTHREAD_DEFAULT_PRIORITY: 50 - - @b WXTHREAD_MAX_PRIORITY: 100 + The following symbolic constants can be used in addition to raw + values in 0..100 range: + - ::wxPRIORITY_MIN: 0 + - ::wxPRIORITY_DEFAULT: 50 + - ::wxPRIORITY_MAX: 100 */ void SetPriority(unsigned int priority);