public async Task Destroy() { m_Acceptor.Dispose(); const int maxRetryCount = 5; for (int i = 0; i < maxRetryCount; i++) { if (m_Connections.IsEmpty) { break; } foreach (var(id, connection) in m_Connections) { connection.Dispose(); m_Connections.TryRemove(id, out var temp); } const int delayTime = 30; await Task.Delay(TimeSpan.FromMilliseconds(delayTime)); } Dispose(); }
public void Dispose() { if (m_IsDisposed) { return; } m_IsDisposed = true; m_Acceptor?.Dispose(); }