多线程同步中的自动事件与手动事件的区别

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33048069/article/details/79297648

CreateEvent
( 
In_opt_ LPSECURITY_ATTRIBUTES lpEventAttributes,//一般填写NULL
    _In_ BOOL bManualReset,//初始化状态区别自动事件与手动事件,true表示手动事件,false表示自动事件
    _In_ BOOL bInitialState,//初始化状态 false是无信号,(起始)需要SetEvent一下(触发当前信号),true有信号(不需要触发)
    _In_opt_ LPCWSTR lpName //一般填写NULL



SetEvent //触发事件(当为自动事件之后,如果SetEvent之后,再次调用WaitForSingleObject会等待信号)(也就是  触发信号时候,自动变成无信号)


ResetEvent//不触发事件当为手事件之后,如果SetEvent之后,再次调用WaitForSingleObject不会等待信号)(也就是  触发信号时候,不自动变成无信号,需要ResetEvent ,变成无信号)






WaitForSingleObject()等待,直到参数所指定的OBJECT成为发信号状态时才返回,OBJECT可以是EVENT,也可以是其它内核对象


CloseHandle//关闭对象

猜你喜欢

转载自blog.csdn.net/qq_33048069/article/details/79297648
今日推荐