-
Notifications
You must be signed in to change notification settings - Fork 98
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
关于cevent与lwevt的对比 #11
Comments
cevent 对某个事件注册监听,对 cevent 来说,注册时传入的函数就是回调,是可以对一个事件注册多个监听的 |
感谢回复,根据一个实际场景对比了下,感觉 cpost适合异步场景,比如在蓝牙发送【蓝牙发送为异步发送,发送完会触发一个回调函数】场景下,在发送时申请内存来存放数据,然后调用异步发送,等待发送完成在回调用释放之前申请的内存资源。 不知道理解的对不对 |
感觉不太对,我再理理,,, |
使用场景并没有固定,主要看怎么用吧, |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
发现这两个功能好像,都是为了将为了去除模块间的耦合,用这种“注册-回调”或者说“广播-事件”模型来解耦
两者都是在编译时映射事件-回调,cevent借助
ld
文件在运行初始化来达成,lwevt则通过lwevt_t
结构体在编译时展开来达成;目前感觉cevent相对于lwevt的缺点是需要移植,依赖链接脚本,而lwevt则只要是ANSI-C就可以;
而event在传参这块比lwevt要优雅些,或者说更加灵活些,而且lwevt目前只能注册一个回调,接收多个事件。
但是,两位作者虽然都是为了解耦,但是举出例子的场景不太相同,lwevt举的是编译时设置多个事件-初始化时注册回调-后续任何事件发生都可以回到回调函数中;cevent则是编译时绑定事件-回调【此时就可以将事件宏定义抽象为执行函数的句柄,发送这个事件即可以触发绑定的事件】,而后使用中对应使用即可。
这里有些疑问,cevent可以将多个事件注册到同一个回调函数么,如果可以,应该也可以实现lwevt的场景例子
The text was updated successfully, but these errors were encountered: