[问题] 关于取代polling的问题

楼主: ching99 (只要食物不要胖)   2015-02-05 23:58:54
我用生活化的假设好了
假如我有两个class 一个是 "妈妈炒菜"
一个是"儿子看电视" 然后有一支电话
情境是这样 妈妈知道外婆会打电话来
所以一边炒菜一边不停的去询问儿子说"电话来了没"
然后直到儿子接到电话然后
确认是外婆而不是隔壁老王才通知妈妈说
"妈~外婆的电话"
这是一般polling的机制
但是 我想要这个儿子主动点
外婆打过来就直接通知妈妈而不是妈妈去问儿子
请问我要用什么方法?
public void MomCook()
{
answerPhone();
}
bool answerPhone()
{
if( GrandMon())
return true;
return false;
}
楼主: ching99 (只要食物不要胖)   2015-02-06 00:04:00
不大会形容~ 有点像是call back的概念
作者: YahooTaiwan (超可爱南西我老婆)   2015-02-06 00:21:00
delegate
作者: tvbic   2015-02-06 00:22:00
event
作者: YahooTaiwan (超可爱南西我老婆)   2015-02-06 00:24:00
observer pattern
楼主: ching99 (只要食物不要胖)   2015-02-06 00:52:00
DELEGATE是不是算是用thread的概念 不过thread也算是poll
作者: ssccg (23)   2015-02-06 01:06:00
不管是delegate还是poll都不一定跟multithread有关系...只是不管event source用poll还是wait做,如果observer有要一直跑的工作,通常还是会在别的thread做
作者: GoalBased (Artificail Intelligence)   2015-02-06 02:03:00
按钮(妈妈)click事件(外婆打来),这样解释对吗?
作者: ssccg (23)   2015-02-06 02:13:00
比较接近的应该是人=thread,工作=程式(delegate)不过原po的描述是single thread,妈妈问儿子儿子才去确认电话,而平常妈妈都用着唯一的thread,所以儿子才不主动妈妈儿子都有thread,妈妈要儿子在接到外婆电话时通知(注册儿子就负责等电话(poll、wait、block I/O...)是外婆才通知
作者: GoalBased (Artificail Intelligence)   2015-02-06 02:53:00
喔..我以为他要外婆打来就直接妈妈去接..搞错了
作者: wenyonba (射后不理很XX啊!!!!)   2015-02-06 08:18:00
妈妈炒菜跟儿子接电话可以两个BackgroundWorker去做
楼主: ching99 (只要食物不要胖)   2015-02-06 09:22:00
就是妈妈炒菜 有没有接电话都没关系的概念 不会因为没接电话就吵不出菜来 只是一个小小的event而已
作者: YahooTaiwan (超可爱南西我老婆)   2015-02-06 13:14:00
妈妈炒菜炒到一半要因为收到电话来了而中断吗class、method 这两个名词要区分清楚

Links booklink

Contact Us: admin [ a t ] ucptt.com