CreateSemaphore

王朝百科·作者佚名  2010-03-06  
宽屏版  字体: |||超大  

CreateSemaphoreVB声明

Declare Function CreateSemaphore Lib "kernel32" Alias "CreateSemaphoreA" (lpSemaphoreAttributes As SECURITY_ATTRIBUTES, ByVal lInitialCount As Long, ByVal lMaximumCount As Long, ByVal lpName As String) As Long

VC声明

HANDLE CreateSemaphore(

LPSECURITY_ATTRIBUTESlpSemaphoreAttributes, // SD

LONGlInitialCount, // initial count

LONGlMaximumCount, // maximum count

LPCTSTRlpName// object name

);

作用

创建一个新的信号机

返回值

Long,如执行成功,返回信号机对象的句柄;零表示出错。会设置GetLastError。即使返回一个有效的句柄,但倘若它指出同名的一个信号机已经存在,那么GetLastError也会返回ERROR_ALREADY_EXISTS

参数

lpSemaphoreAttributes SECURITY_ATTRIBUTES,指定一个SECURITY_ATTRIBUTES结构,或传递零值(将参数声明为ByVal As Long,并传递零值)——表示采用不允许继承的默认描述符。该参数定义了信号机的安全特性

lInitialCount Long,设置信号机的初始计数。可设置零到lMaximumCount之间的一个值

lMaximumCount Long,设置信号机的最大计数

lpName String,指定信号机对象的名称。用vbNullString可创建一个未命名的信号机对象。如果已经存在拥有这个名字的一个信号机,就直接打开现成的信号机。这个名字可能不与一个现有的互斥体、事件、可等待计时器或文件映射的名称相符

注解

一旦不再需要,一定记住用CloseHandle关闭信号机的句柄。它的所有句柄都关闭以后,对象自己也会删除

一旦值大于零,信号机就会触发(发出信号)。ReleaseSemaphore函数的作用是增加信号机的计数。如果成功,就调用信号机上的一个等待函数来减少它的计数

 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝百科 版权所有