fCraft.Scheduler.BackgroundLoop C# (CSharp) Method

BackgroundLoop() private static method

private static BackgroundLoop ( ) : void
return void
        private static void BackgroundLoop()
        {
            while ( !Server.IsShuttingDown ) {
                if ( BackgroundTasks.Count > 0 ) {
                    SchedulerTask task;
                    lock ( BackgroundTaskListLock ) {
                        task = BackgroundTasks.Dequeue();
                    }
                    task.IsExecuting = true;
            #if DEBUG_SCHEDULER
                    FireEvent( TaskExecuting, task );
            #endif

            #if DEBUG
                    task.Callback( task );
            #else
                    try {
                        task.Callback( task );
                    } catch ( Exception ex ) {
                        Logger.LogAndReportCrash( "Exception thrown by ScheduledTask callback", "fCraft", ex, false );
                    } finally {
                        task.IsExecuting = false;
                    }
            #endif

            #if DEBUG_SCHEDULER
                    FireEvent( TaskExecuted, task );
            #endif
                }
                Thread.Sleep( 10 );
            }
        }