CreateSemaphore

此頁沒有內(nèi)容條目
內(nèi)容

CreateSemaphore

VB聲明

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

說明

創(chuàng)建一個新的信號機

返回值

Long,如執(zhí)行成功,返回信號機對象的句柄;零表示出錯。會設(shè)置GetLastError。即使返回一個有效的句柄,但倘若它指出同名的一個信號機已經(jīng)存在,那么GetLastError也會返回ERROR_ALREADY_EXISTS

參數(shù)表

參數(shù)

類型及說明

lpSemaphoreAttributes

SECURITY_ATTRIBUTES,指定一個SECURITY_ATTRIBUTES結(jié)構(gòu),或傳遞零值(將參數(shù)聲明為ByVal As Long,并傳遞零值)——表示采用不允許繼承的默認描述符。該參數(shù)定義了信號機的安全特性

lInitialCount

Long,設(shè)置信號機的初始計數(shù)。可設(shè)置零到lMaximumCount之間的一個值

lMaximumCount

Long,設(shè)置信號機的最大計數(shù)

lpName

String,指定信號機對象的名稱。用vbNullString可創(chuàng)建一個未命名的信號機對象。如果已經(jīng)存在擁有這個名字的一個信號機,就直接打開現(xiàn)成的信號機。這個名字可能不與一個現(xiàn)有的互斥體、事件、可等待計時器或文件映射的名稱相符

注解

一旦不再需要,一定記住用CloseHandle關(guān)閉信號機的句柄。它的所有句柄都關(guān)閉以后,對象自己也會刪除

一旦值大于零,信號機就會觸發(fā)(發(fā)出信號)。ReleaseSemaphore函數(shù)的作用是增加信號機的計數(shù)。如果成功,就調(diào)用信號機上的一個等待函數(shù)來減少它的計數(shù)

Top