作者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/m.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