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 |