看板 C_Sharp 關於我們 聯絡資訊
小弟不才,又有一些問題想請問 TcpListener.BeginAcceptSocket()必須要遇到EndAcceptSocket() 才會結束並且取得聆聽的結果 非同步的好處就是讓小綠人不回頭一直往前衝 結果在下為了讓程式一直保持聆聽狀態,寫了如下的指令 bool keepListen = true; while (keepListen) { TcpListener.BeginAcceptSocket(...) .... } 想說在停止鈕把keepListen設成false就好 果不其然,程式沒有回應 我想可能是BeginAcceptSocket在Message queue裡面爆滿狂排隊 每個人都在EndAccessSocket吧 這下真的是考倒我了 要保持聆聽狀態又要以另外一個按鈕來停止聆聽狀態 到底該怎麼做呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.216.193
tomex:你的模型可以用ManualResetEvent來協調,BeginXX後WaitOne() 05/31 01:05
tomex:然後在BeginXX()中的delegate函式去set event,就能聽其他 05/31 01:06