c++ - Call a class method like a thread -


i'm using sdl, accept solution other libraries if possible (pthread, boost_thread...). have class:

class c_image {     public:         bool _flag_thread;         int  _id;         void load (void);     private:         int thread_func (void*); }  c_image::load (void) {     sdl_thread* thread_1;     if (flag_thread)         thread_1 = sdl_createthread (c_image::thread_func, null);     else         thread_func (null); }  c_image::thread_func (void* data) {     _id = 1;     ....     return 0; } 

the problem if flag_thread false, execute thread_func normal function , works fine, if flag_thread true, need call in different thread , have no idea how make it. line of sdl_createthread return error. need thread of method because inside thread_func need modify elements _id member of class, , if make thread outside of class don't have access _id.

thanks.

edit: how have now, , not find way make work:

class c_image {     public:         bool _flag_thread;         int  _id;         void load (void);     private:         static int thread_func_wrapper (void* data);         int thread_func (void); }  void c_image::load (void) {     sdl_thread* thread_1;     if (flag_thread)         thread_1 = sdl_createthread (thread_func_wrapper, null, this);     else         thread_func(); }  int c_image::thread_func_wrapper (void* data) {     c_image* self = static_cast<c_image*>(data);     return self->thread_func(); }  int c_image::thread_func (void) {     printf ("id: %d", _id);     ....     return 0; } 

now seems work fine. continue doing tests. much!

the problem sdl_createthread "c" style interface, can't take std::function or similar type function object. instead, need create static function takes pointer reference void *data pointer:

class c_image {   ...    static void thread_func_wrapper(void *data);    int thread_func(void); };   int c_image::thread_func_wrapper(void *data) {    c_image* self = static_cast<c_image*>(data);    return self->thread_func(); } 

Comments

Popular posts from this blog

html - How to style widget with post count different than without post count -

How to remove text and logo OR add Overflow on Android ActionBar using AppCompat on API 8? -

javascript - storing input from prompt in array and displaying the array -