title: Using boost thread and a non-static class function
body: <p>So I have done some research, and have found you can create a boost::thread object and have it start with a non-static class function by using "this" and boost::bind etc.  It really doesn't make much sense to me and all the examples I could find had the boost::thread object launched within the same class as the function it was starting with so this could be used.  I however, am launching the thread in a different class so I'm afraid by using "this", I will be saying the "this" is from the class I am creating the thread from, rather than the one the function is in (I'm probably wrong, I need to learn more about this "this" guy).  Here is an example of my source I am having the problem with.</p>
  
  <p>ANNGUI.h</p>
  
  <pre>
  class ANNGUI
  {
  private:
      boost::thread *GUIThread;
      Main *GUIMain;
  public:
      // Creates the entire GUI and all sub-parts.
      int CreateGUI();
  }
  </pre>
  
  <p>ANNGUI.cpp</p>
  
  <pre>
  int ANNGUI::CreateGUI()
  {
          GUIMain = new Main();
      GUIThread = new boost::thread(GUIMain->MainThreadFunc);
  };
  </pre>
  
  <p>This isn't all the source, but I think my problem is in here somewhere,  I know I have to deal with the "this" somehow, but I'm unsure how.  I Could use a static function, but I didn't really want to make my variables static either.
  Thanks.</p>
  
  <p>Also, Is there any very good resource for using any boost libraries? Their web site documentation seems good, but over my head.</p>