1.回调的场景:我给了儿子一个任务且他可以报告状态来(重复的)打断我。而我在等待他完成任务的每一个部份时不用阻塞我自己的进程。他可以在有重要(或者事件)状态报告时,可以定时的打断我,或者向我询求帮助
我:“儿子,到院子里除草去,我要看会书。”
斯科特:“爸,我已经打扫过院子了。”
斯科特:“爸,我已经把草放在除草机上了。”
斯科特:“爸,除草机不能启动了。”
我:“让我来启动它。”
斯科特:“爸,我做好了。”
2.回调就是用于异步的提供服务器与客户之间的信息反馈。它们可能在多线程中,或者可能是简单的提供一个同步更新点。
在C#里是用委托来表示回调的(功能1)。
3.委托大多数是为事件使用的(功能2),事件可以给你的类定义一些外部接口。
委托是包含了某些或某类方法(静态或实例方法)的引用,如果你想在两个类或多个类之间进行通信,
而又期望比使用接口有更少的偶合性,委托是你正确的选择。
4.事件 请参看随笔http://www.cnblogs.com/tiantianle/p/4783634.html