AsyncDolls.AsyncTplScript.GracefulShutdown C# (CSharp) Method

GracefulShutdown() private method

private GracefulShutdown ( ) : Task
return Task
        public async Task GracefulShutdown()
        {
            var tokenSource = new CancellationTokenSource();
            tokenSource.CancelAfter(TimeSpan.FromSeconds(5));
            var token = tokenSource.Token;

            var cancelledTask = Task.Run(async () =>
            {
                await Task.Delay(TimeSpan.FromMinutes(1), token).IgnoreCancellation();
            });

            #region Output

            cancelledTask.Status.ToString().Output();

            #endregion

            try
            {
                await cancelledTask;
            }
            catch (OperationCanceledException)
            {
                #region Output

                "Should not throw when awaited".Output();
                cancelledTask.Status.ToString().Output();

                #endregion
            }

            #region Output

            "Done".Output();

            #endregion

        }