6pa*_*kid 61 language-agnostic architecture callback event-handling
事件处理程序和回调函数之间有什么区别?
cle*_*tus 30
事件处理程序是一种回调.只要事件发生就会调用它.该术语通常用于用户界面,其中事件是移动鼠标,点击某些内容等等.
Jam*_*son 20
一般而言,"回调"受检测过程的控制.因此,您告诉GUI管理器" myaction按下此按钮时调用",GUI管理器在按下按钮时调用操作.
另一方面,事件处理程序在一步操作中被删除.GUI管理器配置为将消息发送到事件处理程序.您告诉事件管理器按钮按下由myaction程序处理.当按下按钮时,GUI管理器将消息放在事件处理程序队列上并继续GUI管理,事件处理程序从队列中获取消息,看到它是按钮按下,启动myaction程序,然后继续处理下一个活动.通常myaction程序将作为独立的线程运行,甚至是单独的进程.
虽然"事件处理程序"模式更复杂,但它更强大,并且在操作失败时不太可能挂起.它还可以提供响应更快的GUI.
Est*_*aya 10
回调(来自维基百科):"作为参数传递给其他代码的可执行代码".
事件处理程序(同样来自维基百科):"处理程序中接收的输入的异步回调子程序".
这恰好是我一直理解的方式:事件处理程序是一种非常特殊的回调类型.
事件 - 想想服务器(员工)和客户(老板).一个员工可以有很多老板.员工在完成任务时提出事件,并且老板可能决定是否听取员工事件.员工是出版商,老板是订户.
回调 - 老板专门要求员工完成任务,在完成任务结束时,Boss希望得到通知.员工将确保在任务完成时,他只通知所要求的老板,而不是所有老板.如果部分工作完成,员工将不会通知Boss.只有在完成所有任务后才会这样做.只有一位老板要求提供信息,员工只将答复发布给一位老板.
另一方面是事件描述过去发生的事情,而回调通常在事情发生时使用。
当事件触发时,您会被告知发生了某些事情。当使用回调时,系统会要求您参与某件事。
库或框架可能会发出事件让您知道发生了什么事。框架为您提供了可以插入代码(可能作为回调)的点,以便您可以积极参与流程。
部分问题在于,事件、回调指的是技术机制以及更抽象的过程。
| 归档时间: |
|
| 查看次数: |
31604 次 |
| 最近记录: |