Car*_*rez 45

回调是您作为参数传递给另一个过程的过程.接收参数的过程可以调用它,或者共享它,以便系统中的其他一些过程可以调用它.

事件处理程序是事件发生时调用的过程.它可以是一个回调.


cle*_*tus 30

事件处理程序是一种回调.只要事件发生就会调用它.该术语通常用于用户界面,其中事件是移动鼠标,点击某些内容等等.

  • 那么还有其他场景可以调用回调吗?除了活动?你能举一个这样的情况的例子吗? (5认同)
  • @cletus,我喜欢你回答,但你能不能添加一些事件处理程序和回调的例子.我理解你所说的......但总是会发生回调,因为"事情发生了",发生的事情发生在99,999999%(对我的谦卑承认)是一个事件,我不会用其他词,因此,其他意义. ..然后才得出结论,技术上讲是相同的事情.请帮助我改进我的承认.谢谢!!问候!:).试着这样思考......你能枚举不属于特定事件的其他类型的回调吗? (2认同)

Jam*_*son 20

一般而言,"回调"受检测过程的控制.因此,您告诉GUI管理器" myaction按下此按钮时调用",GUI管理器在按下按钮时调用操作.

另一方面,事件处理程序在一步操作中被删除.GUI管理器配置为将消息发送到事件处理程序.您告诉事件管理器按钮按下由myaction程序处理.当按下按钮时,GUI管理器将消息放在事件处理程序队列上并继续GUI管理,事件处理程序从队列中获取消息,看到它是按钮按下,启动myaction程序,然后继续处理下一个活动.通常myaction程序将作为独立的线程运行,甚至是单独的进程.

虽然"事件处理程序"模式更复杂,但它更强大,并且在操作失败时不太可能挂起.它还可以提供响应更快的GUI.


Est*_*aya 10

回调(来自维基百科):"作为参数传递给其他代码的可执行代码".
事件处理程序(同样来自维基百科):"处理程序中接收的输入的异步回调子程序".

这恰好是我一直理解的方式:事件处理程序是一种非常特殊的回调类型.


uri*_*ium 10

这个问题很老但我发现这个MSDN链接非常有趣.我希望遇到这个问题的其他任何人都能从这个链接中获得一些东西.

  • 有趣.用这句话来解释:事件就像一条推文; 任何人都可以阅读并回应它.回调就像一条短信; 只有您发送给它的人才能阅读并回复它. (5认同)

Tan*_*uAD 8

事件 - 想想服务器(员工)和客户(老板).一个员工可以有很多老板.员工在完成任务时提出事件,并且老板可能决定是否听取员工事件.员工是出版商,老板是订户.

回调 - 老板专门要求员工完成任务,在完成任务结束时,Boss希望得到通知.员工将确保在任务完成时,他只通知所要求的老板,而不是所有老板.如果部分工作完成,员工将不会通知Boss.只有在完成所有任务后才会这样做.只有一位老板要求提供信息,员工只将答复发布给一位老板.


Tim*_*ass 5

另一方面是事件描述过去发生的事情,而回调通常在事情发生时使用。

当事件触发时,您会被告知发生了某些事情。当使用回调时,系统会要求您参与某件事。

库或框架可能会发出事件让您知道发生了什么事。框架为您提供了可以插入代码(可能作为回调)的点,以便您可以积极参与流程。

部分问题在于,事件、回调指的是技术机制以及更抽象的过程。