我正在使用.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