private void HandleConfirmation(StarNetPacket packet) { lock (NetworkLock) { for (int i = 0; i < PacketRetryList.Count; i++) { if (PacketRetryList[i].Transaction == packet.Transaction) { PacketRetryList[i].OnConfirmationReceived(); PacketRetryList.RemoveAt(i); break; } } } }
private void DoRetries(object discarded) { lock (NetworkLock) { for (int i = 0; i < PacketRetryList.Count; i++) { if (PacketRetryList[i].ScheduledRetry < DateTime.Now) { var packet = PacketRetryList[i]; PacketRetryList.RemoveAt(i--); packet.Retries++; Send(packet, packet.Destination); } } } }