00001 #ifndef __Thread__
00002 #define __Thread__
00003
00004
00005 class Thread {
00006 public:
00007 Thread();
00008 virtual ~Thread();
00009
00010 void start();
00011 void pause();
00012 void stop();
00013
00014 void restart();
00015
00016 void kill();
00017
00018 void join();
00019
00020
00021 protected:
00022
00023 virtual void operator()() = 0;
00024
00025 bool canRun();
00026
00027
00028 private:
00029
00030 static unsigned long __stdcall entry(void* p);
00031
00032 void* _handle;
00033 unsigned long _id;
00034 volatile bool _canRun;
00035 };
00036
00037
00038
00039 #endif