Refer

事件总线 (简称 EBus) 是一个消息派发通用系统。事件总线有许多优势:

  • 抽象化 – 最大限度减少系统间的硬性依赖。
  • 事件驱动编程 – 消除轮询模式,以获得可扩展性更高的高性能软件。
  • 更清晰的应用程序代码 – 安全分派消息,无需担心谁在处理消息或消息究竟是否在处理。
  • 并发 – 对来自各线程的事件进行排队,以在另一线程上安全执行,或用于分布式系统应用程序。
  • 可预测性 – 为给定总线上处理程序的排序提供支持。
  • 调试 – 拦截消息以进行报告、分析和自检。

您可以以多种不同的方式使用事件总线。下面是一些示例:

  • 作为直接全局函数调用
  • 将处理分派到多个处理程序
  • 将所有调用放入队列,就像命令缓冲区一样
  • 作为可寻址的邮箱
  • 用于紧急交付
  • 用于排队交付
  • 将函数调用自动封送到网络消息或其他命令缓冲区中

可在 Lumberyard 目录位置 `<root>\dev\Code\Framework\AZCore\AZCore\EBus\EBus.h` 中找到事件总线源代码。

Refer

image.png

Refer

深入了解事件总线 & Pub/Sub - 图2