/// <summary> /// Safely tries to dequeue a migration. /// </summary> public static MigrationData TryDequeueMigration(int id, long auth, byte channel) { lock (MigrationLock) { MigrationData connection = null; if (MigrationQueue.TryGetValue(id, out connection)) { if (connection.ConnectionAuth == auth && connection.ToChannel == channel) { MigrationQueue.Remove(id); return(connection); } } } return(null); }