public void StartProgress()

in sdk/SdkSamples/Helpers/ConsoleHelper.cs [71:110]


        public void StartProgress(string message)
        {
            if (this.progressBackgroundTask == null || this.progressBackgroundTask.Status != TaskStatus.Running)
            {
                this.progressBackgroundTask = new Task(() =>
                {
                    int dotCounter = 0;

                    while (!this.progressCancellationTokenSource.Token.IsCancellationRequested)
                    {
                        var initialCursorPositionX = Console.CursorLeft;
                        var initialCursorPositionY = Console.CursorTop;

                        for (dotCounter = 0; dotCounter < 5; dotCounter++)
                        {
                            this.WriteColored(".", ConsoleColor.DarkCyan, false);
                            Thread.Sleep(200);

                            if (this.progressCancellationTokenSource.Token.IsCancellationRequested)
                            {
                                return;
                            }
                        }
                        
                        // Erase dots.
                        Console.SetCursorPosition(initialCursorPositionX, initialCursorPositionY);
                        for (int i = 0; i < dotCounter; ++i)
                        {
                            Console.Write(" ");
                        }

                        Console.SetCursorPosition(initialCursorPositionX, initialCursorPositionY);
                    }
                });

                Console.WriteLine();
                this.WriteColored(message, ConsoleColor.DarkCyan, false);
                this.progressBackgroundTask.Start();
            }
        }