API函数详解:CreateSemaphore函数

本文详细介绍Windows API函数CreateSemaphore的使用方法,包括其Visual Basic语法格式声明、功能说明、入口参数及其作用、出口返回值解释等内容。文章还介绍了如何通过此函数创建新的信号机,以及相关的主要应用函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Windows API函数 Visual Basic 语法格式声明
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
Windows API函数功能说明
创建一个新的信号机
Windows API函数出口返回值
Long,如执行成功,返回信号机对象的句柄;零表示出错。会设置GetLastError。即使返回一个有效的句柄,但倘若它指出同名的一个信号机已经存在,那么GetLastError也会返回ERROR_ALREADY_EXISTS
Windows API函数入口参数表
Windows API函数入口参数类型及说明
lpSemaphoreAttributesSECURITY_ATTRIBUTES,指定一个SECURITY_ATTRIBUTES结构,或传递零值(将参数声明为ByVal As Long,并传递零值)——表示采用不允许继承的默认描述符。该参数定义了信号机的安全特性
lInitialCountLong,设置信号机的初始计数。可设置零到lMaximumCount之间的一个值
lMaximumCountLong,设置信号机的最大计数
lpNameString,指定信号机对象的名称。用vbNullString可创建一个未命名的信号机对象。如果已经存在拥有这个名字的一个信号机,就直接打开现成的信号机。这个名字可能不与一个现有的互斥体、事件、可等待计时器或文件映射的名称相符
注解

一旦不再需要,一定记住用CloseHandle关闭信号机的句柄。它的所有句柄都关闭以后,对象自己也会删除
一旦值大于零,信号机就会触发(发出信号)。ReleaseSemaphore函数的作用是增加信号机的计数。如果成功,就调用信号机上的一个等待函数来减少它的计数

 

主要应用函数有:waitfor..函数用来等待信号,并减少计数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值