mirror of
https://github.com/Xevion/easy7zip.git
synced 2025-12-13 12:11:38 -06:00
Initialer Commit
This commit is contained in:
24
CPP/7zip/Common/VirtThread.h
Normal file
24
CPP/7zip/Common/VirtThread.h
Normal file
@@ -0,0 +1,24 @@
|
||||
// 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
|
||||
Reference in New Issue
Block a user