private async Task ConnectLoop() { while (true) { await Task.Delay(5000).ConfigureAwait(false); foreach (var connector in Connectors) { connector.DisplayMessage += ActiveConnectorOnDisplayMessage; if (connector.TryConnect()) { Logger.Info("Connector Connected: " + connector.GetType()); _activeConnector = connector; _activeConnector.DataLoaded += OnDataLoaded; _activeConnector.SessionStarted += OnSessionStarted; _activeConnector.Disconnected += Connector_Disconnected; _activeConnector.StartConnectorLoop(); return; } connector.DisplayMessage -= ActiveConnectorOnDisplayMessage; } } }