25 lines
563 B
C
25 lines
563 B
C
|
// VirtThread.h
|
||
|
|
||
|
#ifndef __VIRT_THREAD_H
|
||
|
#define __VIRT_THREAD_H
|
||
|
|
||
|
#include "../../Windows/Synchronization.h"
|
||
|
#include "../../Windows/Thread.h"
|
||
|
|
||
|
struct CVirtThread
|
||
|
{
|
||
|
NWindows::NSynchronization::CAutoResetEvent StartEvent;
|
||
|
NWindows::NSynchronization::CAutoResetEvent FinishedEvent;
|
||
|
NWindows::CThread Thread;
|
||
|
bool Exit;
|
||
|
|
||
|
~CVirtThread() { WaitThreadFinish(); }
|
||
|
void WaitThreadFinish(); // call it in destructor of child class !
|
||
|
WRes Create();
|
||
|
void Start();
|
||
|
virtual void Execute() = 0;
|
||
|
void WaitExecuteFinish() { FinishedEvent.Lock(); }
|
||
|
};
|
||
|
|
||
|
#endif
|