private CapsRespDvcPdu ExpectDVCCapResponsePDU(TimeSpan timeout, DynamicVC_TransportType transportType = DynamicVC_TransportType.RDP_TCP)
{
DateTime endTime = DateTime.Now + timeout;
while (DateTime.Now < endTime)
{
if (unprocessedDVCPacketBuffer.Count > 0)
{
lock (unprocessedDVCPacketBuffer)
{
if (unprocessedDVCPacketBuffer.Count > 0)
{
for (int i = 0; i < unprocessedDVCPacketBuffer.Count; i++)
{
if (transportType == unprocessedDVCPacketBuffer[i].TransportType
&& unprocessedDVCPacketBuffer[i].PDU is CapsRespDvcPdu)
{
CapsRespDvcPdu capResp = unprocessedDVCPacketBuffer[i].PDU as CapsRespDvcPdu;
unprocessedDVCPacketBuffer.RemoveAt(i);
return capResp;
}
}
}
}
}
Thread.Sleep(this.waitInterval);
}
return null;
}