Calling the BackgroundWorker
RunWorkerAsync() method, the advantages of threading begins running the code programmed in the
DoWork event handler in a new independent thread. This mechanism is known as asynchronous execution.
When an asynchronous method is called, it runs in an independent way, and the program flow goes on with the instruction after to the method call even though its code has not finished its execution. The code in the asynchronous method runs concurrently with the main program flow.