mirror of
				https://github.com/nsnail/spectre.console.git
				synced 2025-11-04 18:40:50 +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