作者ching99 (只要食物不要胖)
看板C_Sharp
标题[问题] 关於取代polling的问题
时间Thu Feb 5 23:58:54 2015
我用生活化的假设好了
假如我有两个class 一个是 "妈妈炒菜"
一个是"儿子看电视" 然後有一支电话
情境是这样 妈妈知道外婆会打电话来
所以一边炒菜一边不停的去询问儿子说"电话来了没"
然後直到儿子接到电话然後
确认是外婆而不是隔壁老王才通知妈妈说
"妈~外婆的电话"
这是一般polling的机制
但是 我想要这个儿子主动点
外婆打过来就直接通知妈妈而不是妈妈去问儿子
请问我要用什麽方法?
public void MomCook()
{
answerPhone();
}
bool answerPhone()
{
if( GrandMon())
return true;
return false;
}
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.224.26.37
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1423151937.A.B75.html
1F:→ ching99: 不大会形容~ 有点像是call back的概念 02/06 00:04
2F:推 YahooTaiwan: delegate 02/06 00:21
3F:推 tvbic: event 02/06 00:22
4F:推 YahooTaiwan: observer pattern 02/06 00:24
5F:→ ching99: DELEGATE是不是算是用thread的概念 不过thread也算是poll 02/06 00:52
6F:→ ssccg: 不管是delegate还是poll都不一定跟multithread有关系... 02/06 01:06
7F:→ ssccg: 只是不管event source用poll还是wait做,如果observer有要 02/06 01:26
8F:→ ssccg: 一直跑的工作,通常还是会在别的thread做 02/06 01:27
9F:→ GoalBased: 按钮(妈妈)click事件(外婆打来),这样解释对吗? 02/06 02:03
10F:→ ssccg: 比较接近的应该是人=thread,工作=程式(delegate) 02/06 02:13
11F:→ ssccg: 不过原po的描述是single thread,妈妈问儿子儿子才去确认电 02/06 02:23
12F:→ ssccg: 话,而平常妈妈都用着唯一的thread,所以儿子才不主动 02/06 02:25
13F:→ ssccg: 妈妈儿子都有thread,妈妈要儿子在接到外婆电话时通知(注册 02/06 02:32
14F:→ ssccg: 儿子就负责等电话(poll、wait、block I/O...)是外婆才通知 02/06 02:46
15F:→ GoalBased: 喔..我以为他要外婆打来就直接妈妈去接..搞错了 02/06 02:53
16F:→ wenyonba: 妈妈炒菜跟儿子接电话可以两个BackgroundWorker去做 02/06 08:18
17F:→ ching99: 就是妈妈炒菜 有没有接电话都没关系的概念 不会因为没 02/06 09:22
18F:→ ching99: 接电话就吵不出菜来 只是一个小小的event而已 02/06 09:22
19F:推 YahooTaiwan: 妈妈炒菜炒到一半要因为收到电话来了而中断吗 02/06 13:14
20F:→ YahooTaiwan: class、method 这两个名词要区分清楚 02/06 13:15