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();
}
}