BOOL ReleaseMutex(HANDLE hMutex);
Declare Function ReleaseMutex Lib "kernel32" (ByVal hMutex As Long) As Long
引数の意味は、以下の通り。
hMutex | 所有権の放棄を行うミューテックスオブジェクトのハンドル。 |
戻り値は、関数の実行に成功したか否かを表す真偽値である。
/* システム中で同時に2つ以上の処理を行ってはいけない処理を行う関数 * ただし、MUTEX_NAMEで定義された名前を持つミューテックスオブジェクトが * 既に作成されているものとする */ void CriticalFunc() { HANDLE hMutex; /* ミューテックスのオープン */ hMutex = OpenMutex(MUTEX_ALL_ACCESS, FALSE, MUTEX_NAME); /* 所有権獲得まで待機 */ WaitForSingleObject(hMutex, INFINITE); /* 処理 */ printf("処理開始\n"); Sleep(3000); printf("処理終了\n"); /* 後処理 */ ReleaseMutex(hMutex); CloseHandle(hMutex); }