UniSet
1.4.0
|
#include <OmniThreadCreator.h>
Открытые типы | |
typedef void(ThreadMaster::* | Action )(void *) |
Открытые члены | |
OmniThreadCreator (ThreadMaster *m, Action a, bool undetached=false) | |
Защищенные члены | |
void * | run_undetached (void *x) |
virtual void | run (void *arg) |
class MyClass { public: MyClass(); ~MyClass(); execute(); protected: void thread(); private: OmniThreadCreator<MyClass>* thr; }; MyClass::MyClass() { thr = new OmniThreadCreator<MyClass>(this, &MyClass::thread); } MyClass::~MyClass() { delete thr; } void MyClass::thread() { while(active) { //что-то делать } } void MyClass::execute() { // создаем поток thr->start(); // делаем что-то еще } main() { MyClass* mc = new MyClass(); mc->execute(); // или так OmniThreadCreator<MyClass>* th = new OmniThreadCreator<TestClass>(&mc, &MyClass::thread); th->start(); // делаем что-то еще }
typedef void(ThreadMaster::* OmniThreadCreator< ThreadMaster >::Action)(void *) |
прототип функции вызова