Majorly, it is used while coding threading related application. Background worker process ensures that one process should not get effected if another is running in a same form.
when we want to do time taking tasks in background such as reading/writing large text file, loading large data from database, etc and updating progress bar.
If you thing about background work so threading come into picture.
This is a in build control of Microsoft winforms. Basically it is used for progressbar related job.