You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
25 lines
587 B
25 lines
587 B
// 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
|