在C語言中,可以使用以下方法來使用CreateMutex
函數:
CreateMutex
函數來創建一個互斥對象。該函數的原型如下:HANDLE CreateMutex(
LPSECURITY_ATTRIBUTES lpMutexAttributes,
BOOL bInitialOwner,
LPCTSTR lpName
);
lpMutexAttributes
參數可以設置為NULL
,表示默認的安全屬性。
bInitialOwner
參數指定互斥對象的初始所有權狀態。如果為TRUE
,則當前線程擁有互斥對象的所有權;如果為FALSE
,則互斥對象創建后沒有所有者。
lpName
參數是一個可選的字符串,用于指定互斥對象的名稱。
WaitForSingleObject
或WaitForMultipleObjects
函數來等待互斥對象。這些函數會阻塞當前線程,直到成功獲取到互斥對象的所有權。WaitForSingleObject
函數的原型如下:DWORD WaitForSingleObject(
HANDLE hHandle,
DWORD dwMilliseconds
);
hHandle
參數是互斥對象的句柄。
dwMilliseconds
參數指定等待的時間(以毫秒為單位)。如果設置為INFINITE
,則表示無限等待,直到成功獲取到互斥對象的所有權。
ReleaseMutex
函數來釋放互斥對象的所有權。該函數的原型如下:BOOL ReleaseMutex(
HANDLE hMutex
);
hMutex
參數是互斥對象的句柄。需要注意的是,在使用完互斥對象后,應使用CloseHandle
函數來關閉互斥對象的句柄,以釋放系統資源。