1// VirtThread.h
2
3#ifndef __VIRTTHREAD_H
4#define __VIRTTHREAD_H
5
6#include "../../Windows/Synchronization.h"
7#include "../../Windows/Thread.h"
8
9struct CVirtThread
10{
11  NWindows::NSynchronization::CAutoResetEvent StartEvent;
12  NWindows::NSynchronization::CAutoResetEvent FinishedEvent;
13  NWindows::CThread Thread;
14  bool ExitEvent;
15
16  ~CVirtThread();
17  HRes Create();
18  void Start();
19  void WaitFinish() { FinishedEvent.Lock(); }
20  virtual void Execute() = 0;
21};
22
23#endif
24