Source code

Revision control

Copy as Markdown

Other Tools

// Windows/Thread.h↩
#ifndef __WINDOWS_THREAD_H↩
#define __WINDOWS_THREAD_H↩
#include "../../C/Threads.h"
#include "Defs.h"
namespace NWindows {↩
class CThread↩
{↩
::CThread thread;↩
public:↩
CThread() { Thread_Construct(&thread); }↩
~CThread() { Close(); }↩
bool IsCreated() { return Thread_WasCreated(&thread) != 0; }↩
WRes Close() { return Thread_Close(&thread); }↩
WRes Create(THREAD_FUNC_RET_TYPE (THREAD_FUNC_CALL_TYPE *startAddress)(void *), LPVOID parameter)↩
{ return Thread_Create(&thread, startAddress, parameter); }↩
WRes Wait() { return Thread_Wait(&thread); }↩
#ifdef _WIN32↩
operator HANDLE() { return thread; }↩
void Attach(HANDLE handle) { thread = handle; }↩
HANDLE Detach() { HANDLE h = thread; thread = NULL; return h; }↩
DWORD Resume() { return ::ResumeThread(thread); }↩
DWORD Suspend() { return ::SuspendThread(thread); }↩
bool Terminate(DWORD exitCode) { return BOOLToBool(::TerminateThread(thread, exitCode)); }↩
int GetPriority() { return ::GetThreadPriority(thread); }↩
bool SetPriority(int priority) { return BOOLToBool(::SetThreadPriority(thread, priority)); }↩
#endif
};↩
}↩
#endif