UniSet  1.4.0
Открытые типы | Открытые члены | Защищенные члены
Шаблон класса OmniThreadCreator< ThreadMaster >

#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)

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

template<class ThreadMaster>
class 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();
            // делаем что-то еще
        }

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

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

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


Объявления и описания членов класса находятся в файле: