NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
system_event类 参考

系统事件类 更多...

#include <system_event.hpp>

Public 类型

enum class  type { manual_reset , auto_reset }
 事件类型枚举 更多...

Public 成员函数

 system_event (bool initial_state=false, type t=type::auto_reset)
 构造函数
 ~system_event ()
 析构函数
 system_event (system_event &&other) noexcept
 移动构造函数
system_eventoperator= (system_event &&other) noexcept
 移动赋值运算符
void set () noexcept
 设置事件为有信号状态
void reset () noexcept
 重置事件为无信号状态
bool wait (uint32_t timeout_ms=numeric_traits< uint32_t >::max()) noexcept
 等待事件变为有信号状态
type event_type () const noexcept
 获取事件类型
void * native_handle () const noexcept
 获取原生事件句柄

详细描述

系统事件类

提供线程同步的事件对象,使用场景:

  • 线程间通知
  • 生产者-消费者模式
  • 工作队列通知

在文件 system_event.hpp33 行定义.

成员枚举类型说明

◆ type

enum class system_event::type
strong

事件类型枚举

枚举值
manual_reset 

手动重置,多个等待线程都会被唤醒,需要手动reset

auto_reset 

自动重置,只唤醒一个等待线程,之后自动重置为无信号

在文件 system_event.hpp39 行定义.

构造及析构函数说明

◆ system_event() [1/2]

system_event::system_event ( bool initial_state = false,
type t = type::auto_reset )
explicit

构造函数

参数
initial_state初始信号状态
t事件类型
异常
system_exception创建失败时抛出

引用了 auto_reset.

被这些函数引用 operator=(), system_event() , 以及 ~system_event().

◆ system_event() [2/2]

system_event::system_event ( system_event && other)
noexcept

移动构造函数

参数
other源对象

引用了 system_event().

成员函数说明

◆ event_type()

type system_event::event_type ( ) const
inlinenodiscardnoexcept

获取事件类型

返回
事件类型

在文件 system_event.hpp127 行定义.

引用了 event_type().

被这些函数引用 event_type().

◆ native_handle()

void * system_event::native_handle ( ) const
inlinenodiscardnoexcept

获取原生事件句柄

返回
原生句柄

在文件 system_event.hpp134 行定义.

◆ operator=()

system_event & system_event::operator= ( system_event && other)
noexcept

移动赋值运算符

参数
other源对象
返回
自身引用

引用了 system_event().

◆ set()

void system_event::set ( )
noexcept

设置事件为有信号状态

唤醒等待该事件的线程。

◆ wait()

bool system_event::wait ( uint32_t timeout_ms = numeric_traitsuint32_t >::max())
noexcept

等待事件变为有信号状态

参数
timeout_ms超时时间(毫秒),默认无限等待
返回
等待是否成功

阻塞当前线程直到事件被设置或超时。 对于自动重置事件,唤醒后事件自动重置。 对于手动重置事件,唤醒后事件保持有信号状态。

引用了 max() , 以及 wait().

被这些函数引用 wait().


该类的文档由以下文件生成: