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));
        }
Exemple #2
0
        private void Clear()
        {
            var delta = StartPosition + Options.Count + 1;

            for (var i = StartPosition; i < delta + StartPosition; i++)
            {
                ConsoleUtilities.ClearLine(i);
            }
        }
Exemple #3
0
 public void WriteCleaningLine(string message, int topOffset = 0)
 {
     ConsoleUtilities.ClearLine(Top + topOffset, Left);
     Write(message, topOffset);
 }