public override void Update(ProgressContext context) { lock (_lock) { if (!_stopwatch.IsRunning) { _stopwatch.Start(); } var renderContext = new RenderContext(_console.Profile.Capabilities); var delta = _stopwatch.Elapsed - _lastUpdate; _lastUpdate = _stopwatch.Elapsed; var grid = new Grid(); for (var columnIndex = 0; columnIndex < _columns.Count; columnIndex++) { var column = new GridColumn().PadRight(1); var columnWidth = _columns[columnIndex].GetColumnWidth(renderContext); if (columnWidth != null) { column.Width = columnWidth; } if (_columns[columnIndex].NoWrap) { column.NoWrap(); } // Last column? if (columnIndex == _columns.Count - 1) { column.PadRight(0); } grid.AddColumn(column); } // Add rows foreach (var task in context.GetTasks().Where(tsk => !(_hideCompleted && tsk.IsFinished))) { var columns = _columns.Select(column => column.Render(renderContext, task, delta)); grid.AddRow(columns.ToArray()); } _live.SetRenderable(new Padder(grid, new Padding(0, 1))); } }