event.cpp

来自「奇迹世界公用文件源代码,研究网络游戏的朋友可以研究下」· C++ 代码 · 共 85 行

CPP
85
字号
/**
 捞亥飘 包访 扁瓷阑 力傍窍绰 努贰胶甫 沥狼窃
*/

#include "UtilityCommon.h"
#include "Event.h"

namespace util
{

static HANDLE Create(LPSECURITY_ATTRIBUTES lpEventAttributes, BOOL bManualReset, BOOL bInitialState, LPCTSTR lpName); // 橇肺配 鸥涝 急攫(沥利 窃荐肺 按眉 急攫绝捞 荤侩 啊瓷窃)

CEvent::CEvent(LPSECURITY_ATTRIBUTES lpEventAttributes, BOOL bManualReset, BOOL bInitialState)
{
	m_hEvent = Create(lpEventAttributes, bManualReset, bInitialState, NULL);
}

CEvent::CEvent(LPSECURITY_ATTRIBUTES lpEventAttributes, BOOL bManualReset, BOOL bInitialState, const _tstring& name)
{
	m_hEvent = Create(lpEventAttributes, bManualReset, bInitialState, name.c_str());
}

void CEvent::Wait() const
{ // 捞亥飘甫 扁促覆
	if(!Wait(INFINITE)) {
	}
}

BOOL CEvent::Wait(DWORD timeoutMillis) const
{ // 捞亥飘甫 瘤沥等 矫埃父怒 扁促覆
   BOOL ok;

   DWORD result = ::WaitForSingleObject(m_hEvent, timeoutMillis);

   if(result == WAIT_TIMEOUT) ok = false;
   else if(result == WAIT_OBJECT_0) ok = true;
   else {
	  return false;
   }
   
   return ok;
}

void CEvent::Reset(){ // 捞亥飘甫 厚劝己拳 窃
	if(!::ResetEvent(m_hEvent)){
		return;
	};
}

void CEvent::Set()
{ // 捞亥飘甫 劝己拳 窃
	if(!::SetEvent(m_hEvent)){
		return;
	}
}

void CEvent::Pulse()
{
	if(!::PulseEvent(m_hEvent)){
		return;
	};
}

CEvent::~CEvent(void)
{
}

HANDLE CEvent::GetEvent() const
{
	return m_hEvent;
}

static HANDLE Create(LPSECURITY_ATTRIBUTES lpEventAttributes, BOOL bManualReset, BOOL bInitialState, LPCTSTR lpName)
{
   HANDLE hEvent = ::CreateEvent(lpEventAttributes, bManualReset, bInitialState, lpName);

   if(hEvent == NULL){
	  return NULL;
   }

   return hEvent;
}

}//End of namespace : util

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?