Closed dlech closed 5 years ago
FYI, this will cause a merge conflict with #27, so if you want to take both, let me know and I will rebase one or the other.
@dlech FYI I've rebased this PR against master and fixed the conflicts and forced pushed to your branch.
Many many thanks again for all the PR's @dlech!
I will do my due diligence and test master
against OSX
linux
and Windows
(WSL
, CMD
, PowerShell
) tonight and push all of these improvements to Nuget 😄
https://www.nuget.org/packages/ShellProgressBar/4.1.1 is out with these fixes 💯
Apparently, the use of Console.CursorTop and Console.CursorLeft is very expensive on .NET Core 2.1 on Linux. As in "I left the demo program running for 12 hours and it was still on 0% overall progress" kind of expensive.
This changes ProgressBar to keep track of the cursor position internally instead of using the Console.CursorTop getter. Also, calls to the setters of Console.CursorTop and Console.CursorLeft are replaced with Console.SetCursorPosition() which has much better performance.
The demo program can now run in seconds instead of days.