CreateMutex

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

CreateMutex

VB聲明

Declare Function CreateMutex Lib "kernel32" Alias "CreateMutexA" (lpMutexAttributes As SECURITY_ATTRIBUTES, ByVal bInitialOwner As Long, ByVal lpName As String) As Long

說明

創(chuàng)建一個互斥體(MUTEX)

返回值

Long,如執(zhí)行成功,就返回互斥體對象的句柄;零表示出錯。會設(shè)置GetLastError。即使返回的是一個有效句柄,但倘若指定的名字已經(jīng)存在,GetLastError也會設(shè)為ERROR_ALREADY_EXISTS

參數(shù)表

參數(shù)

類型及說明

lpMutexAttributes

SECURITY_ATTRIBUTES,指定一個SECURITY_ATTRIBUTES結(jié)構(gòu),或傳遞零值(將參數(shù)聲明為ByVal As Long,并傳遞零值),表示使用不允許繼承的默認描述符

bInitialOwner

Long,如創(chuàng)建進程希望立即擁有互斥體,則設(shè)為TRUE。一個互斥體同時只能由一個線程擁有

lpName

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

注解

一旦不再需要,注意必須用CloseHandle函數(shù)將互斥體句柄關(guān)閉。從屬于它的所有句柄都被關(guān)閉后,就會刪除對象

進程中止前,一定要釋放互斥體,如不慎未采取這個措施,就會將這個互斥體標(biāo)記為廢棄,并自動釋放所有權(quán)。共享這個互斥體的其他應(yīng)用程序也許仍然能夠用它,但會接收到一個廢棄狀態(tài)信息,指出上一個所有進程未能正常關(guān)閉。這種狀況是否會造成影響取決于涉及到的具體應(yīng)用程序

Top