public void Add(IAlertsSourcePoller poller) { lock (_pollersLocker) lock (_isConnectedMultipleLocker) lock (_alertsMultipleLocker) { poller.Connecting += new EventHandler(poller_Connecting); poller.Connected += new EventHandler(poller_Connected); poller.ActiveAlertsChanged += new EventHandler <AlertsEventArgs>(poller_ActiveAlertsChanged); _pollers.Add(poller); _alertsMultiple.Add(poller, new ReadOnlyCollection <string>(new string[0])); _isConnectedMultiple.Add(poller, false); if (_started) { poller.Start(); } } }
public void Remove(IAlertsSourcePoller poller) { lock (_pollersLocker) lock (_isConnectedMultipleLocker) lock (_alertsMultipleLocker) { poller.Connecting -= new EventHandler(poller_Connecting); poller.Connected -= new EventHandler(poller_Connected); poller.ActiveAlertsChanged -= new EventHandler <AlertsEventArgs>(poller_ActiveAlertsChanged); _pollers.Remove(poller); _alertsMultiple.Remove(poller); _isConnectedMultiple.Remove(poller); if (_started) { poller.Stop(); } UpdateConnectedState(); UpdateActiveAlerts(); } }