#include <Thread.h>
Public Member Functions | |
TThread (void) | |
Konstruktor. | |
~TThread (void) | |
Destruktor. | |
BOOL | Run (FUNC_PTR function, void *params) |
Spusteni vlakna na prislusne funkci a s pozadovanym parametrem. | |
BOOL | IsRunning (void) const |
Metoda urci zda bylo vlakno spusteno. | |
BOOL | IsTerminated (void) |
Metoda urci zda bylo bezici vlakno ukonceno. | |
BOOL | Finish (void) |
Metoda radne ukonci provadeni dokonceneho vlakna. | |
BOOL | Terminate (void) |
Metoda ukonci provadeni vlakna. | |
Private Member Functions | |
TThread (const TThread &orig) | |
falesny kopirovaci konstruktor | |
void | operator= (const TThread &orig) |
falesny prirazovaci operator | |
Private Attributes | |
HANDLE | m_thread |
handle na vytvorene vlakno |
Vlakno se spousti metodou TThread::Run().
Po spusteni by melo byt vlakno ukonceno nejakym externim mechanismem (napr. promennou), ktera ve vykonavaci funkci kontroluje beh smycky. Vlakno by melo byt spravne ukonceno tak, ze metoda TThread::IsTerminated() vrati TRUE a nasledne staci zavolat metodu TThread::Finish(), ktera zajisti vycisteni promennych uvnitr..
Vlakno lze prerusit nasilim pomoci metody TThread::Terminate() - pouziti teto metody je vsak nebezpecne protoze uvnitr beziciho vlakna muzou zustat nealokovane zdroje, otevrene synchronizacni mechanismy apod.
Definition at line 49 of file Thread.h.
|
Konstruktor. Vytvori neinicializovane vlakno. To musi byt nasledne spusteno metodou Run(). Definition at line 78 of file Thread.h. References m_thread. |
|
Destruktor. Mel by byt volan pouze na radne ukoncene vlakno, tj. metoda IsTerminated() vraci TRUE a nasledna metoda Finish() vycisti objekt. Pokud vlakno neni radne ukonceno pak se jej destruktor pokusi ukoncit, coz ale muze zpusobit problemy, protoze to muze znamenat preruseni beziciho vlakna napr. po vstupu do kriticke sekce apod. Definition at line 93 of file Thread.h. References m_thread, and Terminate(). Here is the call graph for this function: ![]() |
|
falesny kopirovaci konstruktor
|
|
Metoda radne ukonci provadeni dokonceneho vlakna. Metoda smi byt volana pouze na ukoncene vlakno - tj. kdyz IsTerminated() vraci TRUE. Metoda vraci TRUE pokud bylo vlakno radne ukonceno, jinak FALSE. Po uspesnem zavolani teto metody (TRUE) je mozne spustit novou funkci. Definition at line 157 of file Thread.cpp. References IsTerminated(), and m_thread. Referenced by NSPipeline::TSimpleUnit::Stop(), and NSPipeline::TCameraThread::Stop(). Here is the call graph for this function: ![]() |
|
Metoda urci zda bylo vlakno spusteno.
Definition at line 68 of file Thread.cpp. References m_thread. |
|
Metoda urci zda bylo bezici vlakno ukonceno. Pokud vlakno nebylo vubec spusteno pak metoda vrati TRUE. Metoda vraci FALSE pokud vlakno jeste bezi nebo v pripade nejake systemove chyby vznikle v dusledku dotazu na vlakno.. Definition at line 80 of file Thread.cpp. References m_thread. Referenced by Finish(), NSPipeline::TSimpleUnit::Stop(), NSPipeline::TCameraThread::Stop(), and Terminate(). |
|
falesny prirazovaci operator
|
|
Spusteni vlakna na prislusne funkci a s pozadovanym parametrem. Vlakno lze spustit pouze jednou. Po uspesnem spusteni jiz dalsi volani teto metody vraci TRUE a nic se nedeje. Novou funkci lze spustit teprve po uspesnem ukonceni vlakna - tj. metoda IsTerminated() vrati nejprve TRUE a nasledne je pomoci metody Finish() objekt uveden do pocatecniho stavu. Metoda vraci TRUE pokud bylo vlakno uspesne spusteno nebo pokud jiz nejake vlakno bezi. Metoda vrati FALSE v pripade, ze nelze vytvorit nove vlakno, coz je kriticka chyba.
Definition at line 38 of file Thread.cpp. References m_thread. Referenced by NSPipeline::TSimpleUnit::Start(), and NSPipeline::TCameraThread::Start(). |
|
Metoda ukonci provadeni vlakna. Pokud vlakno jeste nebylo ukonceno pak metoda prerusi vlakno. Metoda vraci TRUE pokud bylo vlakno radne ukonceno. Tato metoda by mela byt volana pouze na vlakno, ktere vraci pri metode TThread::IsTerminated() hodnotu TRUE. To znamena, ze funkce vlakna byla ukoncena navratovou hodnotou a vlakno ceka na ukonceni. Pokud je metoda volana na vlakno, ktere stale bezi, pak dojde k ukonceni vlakna behem provadeni, coz muze zpusobit napr. neuvolneni synchronizacnich mechanizmu (kriticke sekce, semafory, apod). Definition at line 121 of file Thread.cpp. References IsTerminated(), and m_thread. Referenced by ~TThread(). Here is the call graph for this function: ![]() |
|
handle na vytvorene vlakno
Definition at line 69 of file Thread.h. Referenced by Finish(), IsRunning(), IsTerminated(), Run(), Terminate(), TThread(), and ~TThread(). |