AK.F1.Timing.Server.Proxy.ProxySessionManager.MainTask C# (CSharp) Метод

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

private MainTask ( ) : void
Результат void
        private void MainTask()
        {
            Log.Info("main task started");
            try
            {
                var completedActiveSessions = false;
                while(!_cancellationToken.IsCancellationRequested)
                {
                    _wakeUpMainTask.Wait(_cancellationToken);
                    ProcessPendingRemoves();
                    if(!_pendingMessages.IsCompleted)
                    {
                        ProcessPendingMessages();
                    }
                    else if(!completedActiveSessions)
                    {
                        ForEachSession(session => session.CompleteAsync());
                        completedActiveSessions = true;
                    }
                    ProcessPendingStarts(_pendingMessages.IsCompleted);
                }
            }
            catch(OperationCanceledException) { }
            catch(Exception exc)
            {
                Log.Fatal(exc);
                throw;
            }
            finally
            {
                Log.Info("main task stopped");
            }
        }