HA4IoT.ExternalServices.AzureCloud.EventHubSender.ProcessPendingEventsAsync C# (CSharp) Method

ProcessPendingEventsAsync() private method

private ProcessPendingEventsAsync ( ) : Task
return Task
        private async Task ProcessPendingEventsAsync()
        {
            while (true)
            {
                try
                {
                    List<JObject> pendingEvents;
                    lock (_pendingEvents)
                    {
                        pendingEvents = new List<JObject>(_pendingEvents);
                        _pendingEvents.Clear();
                    }

                    if (!pendingEvents.Any())
                    {
                        _eventsLock.WaitOne();
                        continue;
                    }

                    foreach (var pendingEvent in pendingEvents)
                    {
                        await SendToAzureEventHubAsync(pendingEvent);
                    }
                }
                catch (Exception exception)
                {
                    Log.Error(exception, "Error while processing pending EventHub events.");
                }
            }
        }