コード例 #1
0
        public override Task RunAsync()
        {
            var awaitableTask = Task.Run(() =>
            {
                Logger.LogInformation($"Running '{AwaitableTaskName}' during '{AwaitableTaskDurationInSeconds}' sec");
                return(Task.Delay(TimeSpan.FromSeconds(AwaitableTaskDurationInSeconds)));
            }).ContinueWith(previousTask => TaskHelper.OnTerminatedTask(previousTask, AwaitableTaskName));

            var fireAndForgetTask = Task.Run(async() =>
            {
                Logger.LogInformation($"Running '{FireAndForgetTaskName}' during '{FireAndForgetTaskDurationInSeconds}' sec");
                await Task.Delay(TimeSpan.FromSeconds(FireAndForgetTaskDurationInSeconds));
                throw TaskException.TaskHasFailed(FireAndForgetTaskName);
            }).ContinueWith(previousTask => TaskHelper.OnTerminatedTask(previousTask, FireAndForgetTaskName));

            TaskHelper.FireAndForgetTask(fireAndForgetTask, FireAndForgetTaskName);
            return(awaitableTask);
        }