作者teamspike (市政府7F)
看板C_Sharp
標題Re: [問題] 這種狀況,表示得用多執行緒嗎
時間Fri May 30 17:08:44 2008
小弟不才,又有一些問題想請問
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