一、
1
2
3
4
|
CEvent(
BOOL
bInitiallyOwn=FALSE,
BOOL
bManualReset=FALSE,
LPCTSTR
lpszName=NULL,
LPSECURITY_ATTRIBUTES lpsaAttribute=NULL);
|
二、BOOL CEvent::SetEvent();
三、BOOL CEvent::ResetEvent();
1
2
3
4
5
6
|
CSemaphore(
LONG
lInitialCount = 1,
LONG
lMaxCount = 1,
LPCTSTR
pstrName = NULL,
LPSECURITY_ATTRIBUTES lpsaAttributes = NULL
);
|
通常是将当前可用资源计数设置为最大资源计数,每增长一个线程对共享资源的访问,当前可用资源计数就减1,只要当前可用资源计数大于0,就能够发出信号量信号。若是为0,则放入一个队列中等待。线程在处理完共享资源后,应在离开的同时经过ReleaseSemaphore()函数将当前可用资源数加1。网络
1
2
3
|
BOOL
ReleaseSemaphore(
HANDLE
hSemaphore,
// hSemaphore:信号量句柄
LONG
lReleaseCount,
// lReleaseCount:信号量计数值
LPLONG
lpPreviousCount
// 参数通常为NULL);
|