winrt::event 结构模板 (C++/WinRT)
可用于声明和实现指定委托类型的事件的类型。 订阅者将事件处理委托传递给事件;事件在集合中注册这些委托;然后,在引发事件时,事件又调用其已注册的委托,以便订阅者可以处理该事件。 有关创作事件和代码示例的详细信息,请参阅 C++/WinRT 中的 Author 事件。
如果需要项目内部的事件,而不限于Windows 运行时类型,请使用 eventwinrt<::d elegate>。 有关详细信息,请参阅 项目中的参数化委托、简单信号和回调。
有关处理事件和代码示例的详细信息,请参阅 使用 C++/WinRT 中的委托处理事件。
语法
template <typename Delegate>
struct event
模板参数
typename Delegate
可以注册以处理事件的委托的类型。
要求
支持的最低 SDK:Windows SDK 版本 10.0.17134.0 (Windows 10版本 1803)
命名空间: winrt
标头: %WindowsSdkDir%IncludeWindowsTargetPlatformVersion<>\cppwinrt\winrt\base.h (默认包含)
成员类型别名
别名名称 | 类型 |
---|---|
event::d elegate_type | 模板参数的 typename Delegate 同义词。 |
构造函数
构造函数 | 说明 |
---|---|
event::event 构造函数 | 初始化 事件 结构的新实例。 |
成员函数
函数 | 说明 |
---|---|
event::add 函数 | 向 事件 对象注册委托。 |
event::remove 函数 | 从 事件 对象撤消委托的注册。 |
成员运算符
操作员 | 说明 |
---|---|
event::operator () (函数调用运算符) | 使用提供的参数调用所有 事件 对象的已注册委托。 |
event::operator bool | 检查 事件 对象是否具有为其注册的任何委托。 |
event::event 构造函数
初始化 事件 结构的新实例。
语法
event();
event::add 函数
向 事件 对象注册委托。
语法
winrt::event_token add(Delegate const& delegate);
parameters
delegate
向 事件 对象注册的委托。
返回值
winrt::event_token,随后可用于撤销委托的注册。
event::operator () (函数调用运算符)
使用提供的参数调用所有 事件 对象的已注册委托。
语法
template<typename... Arg>
void operator()(Arg const&... args)
模板参数
typename... Arg
一个可变模板参数包,其中包含调用委托时传递的参数的类型。
parameters
args
一个变量参数列表,其中包含调用委托时传递的参数。
event::operator bool
检查 事件 对象是否具有为其注册的任何委托。
语法
explicit operator bool() const noexcept;
返回值
true
if the event object has any registered delegates, otherwise false
.
event::remove 函数
从 事件 对象撤消委托的注册。
语法
void remove(winrt::event_token const token);
parameters
token
一个 winrt::event_token,用于标识要撤销其注册的委托。