| 
 | 
 
别问 问就是用于多进程同步的~ 
 
 
<火山程序 类型 = "通常" 版本 = 1 /> 
 
类 命名互斥锁 <公开 折叠> 
{ 
    变量 m_互斥锁 <类型 = 变整数> 
 
    方法 类_清理 
    { 
        如果 (m_互斥锁 != 0) 
        { 
            @ CloseHandle((HANDLE)@<m_互斥锁>); 
        } 
    } 
 
    方法 创建互斥锁 <公开 类型 = 逻辑型 注释 = "主进程!"> 
    参数 名称 <类型 = 文本型 注释 = "Global\\\\MyMutexName"> 
    { 
        变量 _名称 <类型 = 文本型> 
        _名称 = "Global\\" + 名称 
        @ @<m_互斥锁> = (INT_P)CreateMutex(NULL, FALSE, @<_名称>.GetText()); 
        如果 (m_互斥锁 == 0) 
        { 
            返回 (假) 
        } 
        否则 
        { 
            返回 (真) 
        } 
    } 
 
    方法 打开互斥锁 <公开 类型 = 逻辑型 注释 = "第三方进程"> 
    参数 名称 <类型 = 文本型 注释 = "Global\\\\MyMutexName"> 
    { 
        变量 _名称 <类型 = 文本型> 
        _名称 = "Global\\" + 名称 
        @ @<m_互斥锁> = (INT_P)OpenMutex(MUTEX_ALL_ACCESS, FALSE, @<_名称>.GetText()); 
        返回 (m_互斥锁 != 0) 
    } 
 
    方法 加锁 <公开> 
    { 
        @ WaitForSingleObject((HANDLE)@<m_互斥锁>, INFINITE); 
    } 
 
    方法 解锁 <公开 类型 = 逻辑型 @禁止流程检查 = 真> 
    { 
        @ return ReleaseMutex((HANDLE)@<m_互斥锁>); 
    } 
 
    # 
} 
 
 
 |   
 
 
 
 |