我正在使用.NET CF 3.5 SP1的Windows CE 5.0的應用程序。我想模擬插口接收超時,並寫了一些代碼:.NET CF套接字接收超時
...
AutoResetEvent auto = new AutoResetEvent(false);
mySocket.BeginReceiveFrom(arrData, 0, 4, SocketFlags.None, ref EP, new AsyncCallback(ReceiveCallback), mySocket);
//if (auto.WaitOne(10000,false)) or :
if (auto.WaitOne())
{
// program flow never comes here, even after setting signal!
_log.AppendLine("Message receive success");
}
...
,這裏是我的回調方法:
void ReceiveCallback(IAsyncResult ar)
{
bool b = ((EventWaitHandle)ar.AsyncWaitHandle).Set();
_log.AppendLine(string.Format("AsyncWaitHandle.Set() called and returned {0}",b));
}
爲我所測試的應用程序,並記錄一些信息,我立即接收數據和「ar.AsyncWaitHandle .Set()'返回true,但爲什麼程序流程永遠不會結束?怎麼了?
你的問題現在得到了解答嗎?我不確定你是否需要更多的幫助。 – 2011-06-08 14:23:23
@ C.Evenhuis,是的。謝謝。 – losingsleeep 2011-09-14 08:13:55