Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Threading;
- using System.Threading.Tasks;
- namespace Utils
- {
- public static class Progress
- {
- public static Task ProgressDots(CancellationToken token)
- {
- return ProgressDots(token, 2000);
- }
- public static async Task ProgressDots(CancellationToken token, int msDelay)
- {
- try
- {
- await Task.Run(async () =>
- {
- var dots = ".";
- while (!token.IsCancellationRequested)
- {
- Console.Write($"\r{dots}");
- var trimmedLength = dots.Replace("\r", "").Replace("\n", "").Length;
- if (trimmedLength%Console.WindowWidth == 0)
- {
- Console.WriteLine();
- dots = "";
- }
- dots += ".";
- await Task.Delay(msDelay, token);
- }
- },
- token);
- }
- catch
- {
- /* gulp - task cancelled*/
- }
- }
- public static Task ProgressSpinner(CancellationToken token)
- {
- return ProgressSpinner(token, 100);
- }
- public static async Task ProgressSpinner(CancellationToken token, int msDelay)
- {
- try
- {
- await Task.Run(async () =>
- {
- while (!token.IsCancellationRequested)
- {
- var arr = new[] {"\\", "|", "/", "-"};
- foreach (var a in arr)
- {
- Console.Write($"\r {a}");
- await Task.Delay(msDelay, token);
- }
- }
- },
- token);
- }
- catch
- {
- /* gulp - task cancelled */
- }
- finally
- {
- Console.Write("\r ");
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement