public RdpeudpPacket ExpectPacket(TimeSpan timeout)
{
DateTime endtime = DateTime.Now + timeout;
while (DateTime.Now < endtime)
{
lock (unProcessedPacketBuffer)
{
if (unProcessedPacketBuffer.Count > 0)
{
RdpeudpPacket eudpPacket = unProcessedPacketBuffer[0];
unProcessedPacketBuffer.RemoveAt(0);
return eudpPacket;
}
}
// If not receive a Packet, wait a while
Thread.Sleep(RdpeudpSocketConfig.ReceivingInterval);
}
return null;
}