UniSet 2.44.3
Шаблон класса uniset::OmniThreadCreator< ThreadMaster >

#include <OmniThreadCreator.h>

Граф наследования:uniset::OmniThreadCreator< ThreadMaster >:
Граф связей класса uniset::OmniThreadCreator< ThreadMaster >:

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

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:
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();
// делаем что-то еще
}
Определения OmniThreadCreator.h:93

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

◆ Action

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

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