private void Update(T data) { lock (LockContext) { var progress = Converter(data); var restorePoint = new ConsoleSettings(); Console.CursorVisible = false; Console.SetCursorPosition(0, LineNumber); var bfWidth = Console.BufferWidth; StringBuilder sb = new StringBuilder(bfWidth); if (!String.IsNullOrEmpty(Name)) { sb.Insert(0, $"[ {Name} ] "); } var progressStr = $" {progress.ToString("0.##", CultureInfo.CurrentCulture)}%"; var loadingBarWidth = bfWidth - sb.Length - progressStr.Length; var cells = Convert.ToInt32( Math.Ceiling( loadingBarWidth * (progress / 100))); sb.Insert(0, "=", cells); sb.Append(progressStr); Console.WriteLine(sb.ToString()); // Restore defaults. restorePoint.Restore(true); } }
private void Update(T data) { lock (LockContext) { var message = Converter(data); var restorePoint = new ConsoleSettings(); Console.CursorVisible = false; Console.SetCursorPosition(0, LineNumber); var prefix = String.Empty; if (!String.IsNullOrEmpty(Name)) { prefix += $"[ {Name} ] "; } prefix += $"{message}"; Console.WriteLine( prefix.PadRight(Console.BufferWidth)); // Restore defaults. restorePoint.Restore(true); } }