This repository has been archived on 2024-06-04. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
thesis-src/Examples/CLI/Monitor/CliTaskMonitor.cs
T
Simon Gruber 8ada606fa6 a
2023-11-22 07:46:10 +01:00

46 lines
929 B
C#

using System.Text;
namespace CLI.Monitor;
public class CliTaskMonitor : TaskMonitor
{
/// <inheritdoc />
public CliTaskMonitor(IEnumerable<(string? Name, Task Task)> tasks) : base(tasks) { }
/// <inheritdoc />
public CliTaskMonitor(IEnumerable<Task> tasks) : base(tasks) { }
#region Overrides of TaskMonitor
/// <inheritdoc />
protected override void OnUpdate(ICollection<(string? Name, Task Task)> tasks)
{
var sb = new StringBuilder(tasks.Count * 30);
foreach (var (name, task) in tasks)
{
sb.Append($"{StatusMap[task.Status],-5}");
if (name is not null)
{
sb.Append(": ")
.Append(name);
}
sb.AppendLine();
if (task.Exception is not null)
{
sb.Append("> EX: ")
.AppendLine(task.Exception.Message);
}
}
sb.AppendLine();
Console.Clear();
Console.Write(sb.ToString());
}
#endregion
}