public void Start() { if (Timer != null) { return; } Timer = new Timer(state => { var res = Message.Invoke(CurrentTime); if (OldMessage != null && res?.Length < OldMessage?.Length) { ConsoleUtilities.ClearLine(Line, StartAt, OldMessage.Length); } ConsoleUtilities.SetTemporaryConsolePosition(() => Console.Write(res), Line, StartAt); CurrentTime--; OldMessage = res; if (CurrentTime < 0) { Stop(); } }, null, TimeSpan.Zero, TimeSpan.FromSeconds(1)); }
private void Clear() { var delta = StartPosition + Options.Count + 1; for (var i = StartPosition; i < delta + StartPosition; i++) { ConsoleUtilities.ClearLine(i); } }
public void WriteCleaningLine(string message, int topOffset = 0) { ConsoleUtilities.ClearLine(Top + topOffset, Left); Write(message, topOffset); }