多线程小测(一)(wxWidgets)

来源:互联网 发布:淘宝3dsll 编辑:程序博客网 时间:2024/06/07 06:12
Code:
  1. #include <iostream>   
  2. #include <wx/thread.h>   
  3. using namespace std;   
  4.   
  5. void fun()   
  6. {   
  7.     for (int i=0; i!=50; ++i)   
  8.     {   
  9.         cout<<i<<" ";   
  10.     }   
  11.   
  12. }   
  13.   
  14. class MyThread : public wxThread   
  15. {   
  16. public:   
  17.     MyThread()   
  18.     {   
  19.     }   
  20.     MyThread(wxThreadKind tk, void(*pfun)()=0) : wxThread(tk)   
  21.     {   
  22.         p=pfun;   
  23.     }   
  24.     virtual ExitCode Entry()   
  25.     {   
  26.         if (p)   
  27.         {   
  28.             p();   
  29.         }   
  30.         return 0;   
  31.     }   
  32.   
  33. private:   
  34.     void (*p)();   
  35. };   
  36.   
  37.   
  38. int main()   
  39. {   
  40.     MyThread *p = new MyThread(wxTHREAD_JOINABLE, fun);   
  41.   
  42.     if (p->Create() == wxTHREAD_NO_ERROR )   
  43.     {   
  44.         cout<<"线程创建成功"<<endl;   
  45.     }   
  46.     if (p->Run() == wxTHREAD_NO_ERROR )   
  47.     {   
  48.         cout<<"线程运行成功"<<endl;   
  49.     }   
  50.   
  51.     wxThread::Sleep(5000);   
  52.     p->Wait();   
  53.     return 0;   
  54. }   



以上是我测试wxWidgets的线程类时的小代码,编译链接都ok,但是运行时这样,折腾多次均没成功,不知道原因出在哪里呢? (google搜索了一下,TLS:线程局部存储Thread Local Storage)