Sometimes you may need your application to work on a slow or time- consuming task in such a way that your user isn't kept waiting unnecessarily while this is happening.
The answer to this problem is to use multithreading. Having seen many forum questions about multithreading, I know that many people are a bit apprehensive about tackling it. However, as it turns out, the BackgroundWorker component is versatile and easy to use, providing a painless solution to this requirement.
In this article I will show you how you can incorporate the BackgroundWorker into your projects to give your users a more professional and less frustrating experience.