看板 C_Sharp 關於我們 聯絡資訊
我用生活化的假設好了 假如我有兩個class 一個是 "媽媽炒菜" 一個是"兒子看電視" 然後有一支電話 情境是這樣 媽媽知道外婆會打電話來 所以一邊炒菜一邊不停的去詢問兒子說"電話來了沒" 然後直到兒子接到電話然後 確認是外婆而不是隔壁老王才通知媽媽說 "媽~外婆的電話" 這是一般polling的機制 但是 我想要這個兒子主動點 外婆打過來就直接通知媽媽而不是媽媽去問兒子 請問我要用什麼方法? public void MomCook() { answerPhone(); } bool answerPhone() { if( GrandMon()) return true; return false; } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.224.26.37 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1423151937.A.B75.html
ching99: 不大會形容~ 有點像是call back的概念 02/06 00:04
YahooTaiwan: delegate 02/06 00:21
tvbic: event 02/06 00:22
YahooTaiwan: observer pattern 02/06 00:24
ching99: DELEGATE是不是算是用thread的概念 不過thread也算是poll 02/06 00:52
ssccg: 不管是delegate還是poll都不一定跟multithread有關係... 02/06 01:06
ssccg: 只是不管event source用poll還是wait做,如果observer有要 02/06 01:26
ssccg: 一直跑的工作,通常還是會在別的thread做 02/06 01:27
GoalBased: 按鈕(媽媽)click事件(外婆打來),這樣解釋對嗎? 02/06 02:03
ssccg: 比較接近的應該是人=thread,工作=程式(delegate) 02/06 02:13
ssccg: 不過原po的描述是single thread,媽媽問兒子兒子才去確認電 02/06 02:23
ssccg: 話,而平常媽媽都用著唯一的thread,所以兒子才不主動 02/06 02:25
ssccg: 媽媽兒子都有thread,媽媽要兒子在接到外婆電話時通知(註冊 02/06 02:32
ssccg: 兒子就負責等電話(poll、wait、block I/O...)是外婆才通知 02/06 02:46
GoalBased: 喔..我以為他要外婆打來就直接媽媽去接..搞錯了 02/06 02:53
wenyonba: 媽媽炒菜跟兒子接電話可以兩個BackgroundWorker去做 02/06 08:18
ching99: 就是媽媽炒菜 有沒有接電話都沒關係的概念 不會因為沒 02/06 09:22
ching99: 接電話就吵不出菜來 只是一個小小的event而已 02/06 09:22
YahooTaiwan: 媽媽炒菜炒到一半要因為收到電話來了而中斷嗎 02/06 13:14
YahooTaiwan: class、method 這兩個名詞要區分清楚 02/06 13:15