[問題] 關於取代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