mirror of
https://github.com/copyrighttxt/watrbx-game-engine.git
synced 2026-09-04 20:57:49 +00:00
66 lines
1.3 KiB
C++
66 lines
1.3 KiB
C++
//// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
|
|
//// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
|
|
//// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
|
|
//// PARTICULAR PURPOSE.
|
|
////
|
|
//// Copyright (c) Microsoft Corporation. All rights reserved
|
|
#pragma once
|
|
#include "Clock.h"
|
|
|
|
#if TV_API
|
|
|
|
namespace Microsoft {
|
|
namespace Xbox {
|
|
namespace GameChat {
|
|
|
|
delegate void ThreadDoWorkHandler();
|
|
|
|
ref class Thread sealed
|
|
{
|
|
public:
|
|
Thread(
|
|
_In_ UINT sendPeriodInMilliseconds,
|
|
_In_ int32 threadAffinityMask,
|
|
_In_ int threadPriority
|
|
);
|
|
|
|
virtual ~Thread();
|
|
|
|
void Shutdown();
|
|
|
|
UINT GetWorkPeriodInMilliseconds();
|
|
|
|
void SetWorkPeriodInMilliseconds(
|
|
_In_ UINT sendPeriodInMilliseconds
|
|
);
|
|
|
|
void SetOptions(
|
|
_In_ int32 threadAffinityMask,
|
|
_In_ int threadPriority
|
|
);
|
|
|
|
void WakeupThread();
|
|
|
|
event ThreadDoWorkHandler^ OnDoWork;
|
|
|
|
private:
|
|
static DWORD WINAPI StaticThreadProc(
|
|
_In_ Thread^ networkSendThread
|
|
);
|
|
|
|
DWORD ThreadProc();
|
|
|
|
private:
|
|
CRITICAL_SECTION m_threadManagementLock;
|
|
Clock m_clock;
|
|
HANDLE m_terminateThreadEvent;
|
|
HANDLE m_threadHandle;
|
|
HANDLE m_wakeupEventHandle;
|
|
UINT m_workPeriodInMilliseconds;
|
|
int m_threadPriority;
|
|
uint32 m_threadAffinityMask;
|
|
};
|
|
|
|
}}}
|
|
|
|
#endif |