For operations where the percentage of the operation completed can be determined, use a determinate indicator. They give users a quick sense of how long an operation will take.
For operations where the user is asked to wait a moment while something finishes up, and it’s not necessary to expose what's happening behind the scenes and how long it will take, use an indeterminate indicator.
There are two types of indicators: linear and circular. You can use either one for determinate and indeterminate operations.
Linear
A linear progress indicator should always fill from 0% to 100% and never move backwards to a lower value. If multiple operations are happening in sequence, use the progress indicator to represent the delay as a whole, so that when the bar reaches 100%, it doesn't return back to 0%.
Linear bars should appear and disappear on the edge of a header or sheet.