private void ProcessRecords() { while (!_Terminate) { _TriggerProcessRecords.Reset(); DTLSRecord record = _Records.PeekRecord(); while (record != null) { if (_ServerEpoch.HasValue) { if ((_ServerSequenceNumber == record.SequenceNumber) && (_ServerEpoch == record.Epoch)) { _Records.RemoveRecord(); ProcessRecord(record); record = _Records.PeekRecord(); } else { record = null; } } else { _Records.RemoveRecord(); ProcessRecord(record); record = _Records.PeekRecord(); } } if (!_Terminate) { _TriggerProcessRecords.WaitOne(); } } }