private async Task disposeResources() { if (_isShuttingDown) { return; } try { _isShuttingDown = true; foreach (var task in _tasksStorage.Value.Tasks.Where(x => x.TaskInstance != null)) { task.TaskInstance.IsShuttingDown = true; } var timeOut = TimeToFinish; while (_tasksStorage.Value.Tasks.Any(x => x.IsRunning) && timeOut >= 0) { // still running ... await Task.Delay(50).ConfigureAwait(false); timeOut -= 50; } } finally { _jobsRunnerTimer.Stop(); await _thisApplication.WakeUp().ConfigureAwait(false); } }
/// <summary> /// Scheduled task's logic. /// </summary> public async Task RunAsync() { if (this.IsShuttingDown) { return; } await _thisApplication.WakeUp(); }
/// <summary> /// Scheduled task's logic. /// </summary> public async Task RunAsync() { if (this.IsShuttingDown) { return; } await _thisApplication.WakeUp().ConfigureAwait(false); }