A spinning circle requires just two threads, one to do the work and one to spin the circle. And they don’t have to talk to each other.
A progress bar is the same thing, but now the work thread has to periodically communicate the progress to the bar thread, and inter-thread synchronization has to be setup. And how do you know how much progress a single file transfer represents? Or how many progress points is a registry edit versus a file transfer? It’s hard to figure out in advance, which is why so many progress bars are shitty estimates of progress.







Low approach. Delivery truck was on the public highway. Not a runway incursion. Pilot’s about to lose their job.