UniSet 2.32.1
Открытые типы | Открытые члены | Защищенные члены | Полный список членов класса
Шаблон класса uniset::OmniThreadCreator< ThreadMaster >

#include <OmniThreadCreator.h>

Граф наследования:uniset::OmniThreadCreator< ThreadMaster >:
Inheritance graph
[см. легенду]
Граф связей класса uniset::OmniThreadCreator< ThreadMaster >:
Collaboration graph
[см. легенду]

Открытые типы

typedef void(ThreadMaster::* Action) ()
 

Открытые члены

 OmniThreadCreator (const std::shared_ptr< ThreadMaster > &m, Action a, bool undetached=false)
 
bool isRunning ()
 
void stop ()
 
int getTID ()
 
void join ()
 

Защищенные члены

void * run_undetached (void *x)
 
virtual void run (void *arg)
 

Подробное описание

template<class ThreadMaster>
class uniset::OmniThreadCreator< ThreadMaster >
Шаблон для создания потоков с указанием функции вызова. Пример использования:
class MyClass
{
public:
MyClass();
~MyClass();
execute();
protected:
void thread();
private:
};
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();
// делаем что-то еще
}
Definition OmniThreadCreator.h:93

Определения типов

◆ Action

template<class ThreadMaster >
typedef void(ThreadMaster::* uniset::OmniThreadCreator< ThreadMaster >::Action) ()

прототип функции вызова