AzureWebFarm.Services.SyncService.SyncForever C# (CSharp) Method

SyncForever() public method

public SyncForever ( Func interval ) : void
interval Func
return void
        public void SyncForever(Func<TimeSpan> interval)
        {
            var lastHeartbeat = DateTime.MinValue;

            while (true)
            {
                var currentTime = DateTime.Now;
                if ((currentTime - lastHeartbeat).Minutes > 15)
                {
                    _logger.DebugFormat("*heartbeat*; synchronization is {0}.", _syncEnabled() ? "active" : "paused");
                    lastHeartbeat = currentTime;
                }

                if (_syncEnabled())
                {
                    SyncOnce();
                }

                OnPing();

                Thread.Sleep(interval());
            }
        }