Progress bars can add unnecessary complexity to code. It doesn't make sense to add threading or break larger tasks into arbitrary sizes just so you can monitor progress more accurately. Simply incrementing a counter (or keeping track of total bytes copied) and only updating it after each step is much more practical.