在鸿蒙中如何进行线程通信
如何进行线程通信,一般有两个方法
emitter 线程间通信- 同一个项目下 随意通信
Emitter 是一种作用在进程内的事件处理机制,为应用程序提供订阅事件、发布事件、取消事件订阅的能力。
场景介绍
Emitter 用于同一进程内相同线程或不同线程间的事件处理,事件异步执行。使用时需要先订阅一个事件,然后发布该事件,发布完成后 Emitter 会将已发布的事件分发给订阅者,订阅者就会执行该事件订阅时设置的回调方法。当不需要订阅该事件时应及时取消订阅释放 Emitter 资源。
在首页发送
复制代码
eventHub 线程内通信- 同一个窗口中随意通信
基于当前的应用模型,可以通过以下几种方式来实现 UIAbility 组件与 UI 之间的数据同步。
使用 EventHub 进行数据通信:在基类 Context 中提供了 EventHub 对象,可以通过发布订阅方式来实现事件的传递。在事件传递前,订阅者需要先进行订阅,当发布者发布事件时,订阅者将接收到事件并进行相应处理。
使用 EventHub 进行数据通信
EventHub 为 UIAbility 组件提供了事件机制,使它们能够进行订阅、取消订阅和触发事件等数据通信能力。
复制代码
评论