/// <summary> /// Does the actual forwarding of the events. /// </summary> private void ForwardEvents() { _IsRunning = true; try { // Keep looping as long as the MTA is running. while (!_IsStopping) { IList <MantaEvent> events = null; // Get events for forwarding. try { events = EventDB.GetEventsForForwarding(10); } catch (SqlNullValueException) { events = new List <MantaEvent>(); } if (events.Count == 0) { // No events to forward sleep for a second and look again. Thread.Sleep(1000); continue; } else { // Found events to forward, create and run Tasks to forward. for (var i = 0; i < events.Count; i++) { ForwardEventAsync(events[i]).Wait(); } } } } catch (Exception ex) { // Something went wrong. Logging.Error("EventHttpForwarder encountered an error.", ex); MantaCoreEvents.InvokeMantaCoreStopping(); Environment.Exit(-1); } _IsRunning = false; }