zoukankan      html  css  js  c++  java
  • WaitForSingleObject函数的使用

    等待函数可使线程自愿进入等待状态,直到一个特定的内核对象变为已通知状态为止。 

    WaitForSingleObject 函数

    DWORD WaitForSingleObject(
        HANDLE hObject,
        DWORD dwMilliseconds
    );

    第一个参数hObject标识一个能够支持被通知/未通知的内核对象。

    第二个参数dwMilliseconds允许该线程指明,为了等待该对象变为已通知状态,它将等待多长时间。(INFINITE为无限时间量,INFINITE已经定义为0xFFFFFFFF(或-1))

    传递INFINITE有些危险。如果对象永远不变为已通知状态,那么调用线程永远不会被唤醒,它将永远处于死锁状态,不过,它不会浪费宝贵的C P U时间。

    产生事件对象的函数如下:  

    HANDLE     CreateEvent(
    
            LPSECURITY_ATTRIBUTES     lpEventAttributes,     //     SD   
            BOOL     bManualReset,                                                 //     reset     type   
            BOOL     bInitialState,                                                      //     initial     state   
            LPCTSTR     lpName                                                       //     object     name   
        );   

    bManualReset:TRUE,使用ResetEvent()手动重置为无信号状态;FALSE,当一个等待线程被释放时,自动重置状态为无信号状态。

    bInitialState:指定事件对象的初始状态,当TRUE,初始状态为有信号状态;当FALSE,初始状态为无信号状态。

    m_pathevent=CreateEvent(NULL,FALSE,FALSE,NULL);//线程释放后自动重置为无信号状态,初始化时为无信号状态

    一个Event被创建以后,操作函数:

    用OpenEvent()API来获得它的Handle,

    用CloseHandle()    来关闭它,

    用SetEvent()或PulseEvent()来设置它使其有信号,

    用ResetEvent()       来使其无信号,

    用WaitForSingleObject()或WaitForMultipleObjects()来等待其变为有信号.   

  • 相关阅读:
    OCP-1Z0-053-V13.02-252题
    Java中list.get(index)报错
    OCP-1Z0-053-V13.02-103题
    Hash unique和Sort unique
    如何解决mysql数据库8小时无连接自动关闭
    OCP-1Z0-053-V13.02-538题
    OCP-1Z0-053-V13.02-537题
    OCP-1Z0-053-V13.02-518题
    用绘本回忆青春创业经历——leo鉴书46
    OCP-1Z0-053-V13.02-502题
  • 原文地址:https://www.cnblogs.com/perfy/p/7216442.html
Copyright © 2011-2022 走看看