CrewChiefV3.AudioPlayer.monitorQueue C# (CSharp) Метод

monitorQueue() приватный Метод

private monitorQueue ( ) : void
Результат void
        private void monitorQueue()
        {
            Console.WriteLine("Monitor starting");
            initialiseBackgroundPlayer();
            DateTime nextQueueCheck = DateTime.Now;
            while (monitorRunning)
            {
                if (requestChannelOpen)
                {
                    openRadioChannelInternal();
                    requestChannelOpen = false;
                    holdChannelOpen = true;
                }
                if (!holdChannelOpen && channelOpen)
                {
                    closeRadioInternalChannel();
                }
                if (immediateClips.Count > 0)
                {
                    try
                    {
                        playQueueContents(immediateClips, true);
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("Exception processing immediate clips: " + e.Message);
                        lock (immediateClips)
                        {
                            immediateClips.Clear();
                        }
                    }
                }
                if (requestChannelClose)
                {
                    if (channelOpen)
                    {
                        if (!queueHasDueMessages(queuedClips, false) && !queueHasDueMessages(immediateClips, true))
                        {
                            requestChannelClose = false;
                            holdChannelOpen = false;
                            closeRadioInternalChannel();
                        }
                    }
                    else
                    {
                        requestChannelClose = false;
                        holdChannelOpen = false;
                    }
                }
                if (DateTime.Now > nextQueueCheck)
                {
                    nextQueueCheck = nextQueueCheck.Add(queueMonitorInterval);
                    try
                    {
                        playQueueContents(queuedClips, false);
                        allowPearlsOnNextPlay = true;
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("Exception processing queued clips: " + e.Message);
                        lock (queuedClips)
                        {
                            queuedClips.Clear();
                        }
                    }
                }
                else
                {
                    Thread.Sleep(immediateMessagesMonitorInterval);
                    continue;
                }
            }
            //writeMessagePlayedStats();
            playedMessagesCount.Clear();
            stopBackgroundPlayer();
        }