protected override async Task Process() { var delay = 10; if ((DateTime.UtcNow - timestamp).TotalSeconds < _cfg.diskCheckIntensity) { var timeUntilNextExecution = _cfg.diskCheckIntensity - (DateTime.UtcNow - timestamp).TotalMilliseconds; if (timeUntilNextExecution > delay) { delay = (int)timeUntilNextExecution; } } await Task.Delay(delay); _pm.TryUpdateDriveInfo(); timestamp = DateTime.UtcNow; }