Microsoft has provided BackgroundWorker class which make it really easy to create background threads easily. Sometimes we need to implement so functionalities in background threads so that UI will not freeze, that is when this class comes handy. Obviously we can create our own threads and manage there lifecycle ourselves but not everyone is efficient with threads and also sometimes the complexity hits back by consuming lot of time which we really do not have in case of rapid application development. When to use : Downloading a large file and showing progress bar. Uploading some information in background but letting the user to work. Creating a polling application etc. Usage: BackgroundWorker is also present in the toolbox and you can drag it from there or like any other control you can create an object at runtime and use it on the fly. It comes with various events and properties, few of them which are really important are: DoWorkEventHandler (event) Thi...