mirror of
https://github.com/nsnail/spectre.console.git
synced 2025-06-19 05:18:16 +08:00
Add async spinner extension methods and related documentation
This commit is contained in:
@ -0,0 +1,36 @@
|
||||
using System.Threading.Tasks;
|
||||
using Generator.Commands.Samples;
|
||||
using Spectre.Console;
|
||||
using Spectre.Console.Extensions;
|
||||
|
||||
namespace Generator.Commands.AsciiCast.Samples;
|
||||
|
||||
public class AwaitSpinnerSample : BaseSample
|
||||
{
|
||||
private static async Task DoSomethingAsync(int value)
|
||||
{
|
||||
await Task.Delay(value);
|
||||
}
|
||||
|
||||
public override (int Cols, int Rows) ConsoleSize { get; } = (40, 4);
|
||||
|
||||
public override void Run(IAnsiConsole console)
|
||||
{
|
||||
Task.Run(async () =>
|
||||
{
|
||||
AnsiConsole.Write("Loading the rocket ship ");
|
||||
await DoSomethingAsync(3500).Spinner(Spinner.Known.Dots);
|
||||
AnsiConsole.MarkupLine("[green]Done[/]");
|
||||
|
||||
AnsiConsole.Write("Firing up the engines ");
|
||||
await DoSomethingAsync(3400).Spinner(Spinner.Known.BouncingBar);
|
||||
AnsiConsole.MarkupLine("[green]Done[/]");
|
||||
|
||||
AnsiConsole.Write("Blasting into orbit ");
|
||||
await DoSomethingAsync(3025).Spinner(Spinner.Known.Hamburger);
|
||||
AnsiConsole.MarkupLine("[red]Oh no[/]");
|
||||
|
||||
}).Wait();
|
||||
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user