A better BackgroundWorker : CancelImmediately and other goodies
One of the nice new features you get in .NET 2.0 Winforms is the new BackgroundWorker component. It allows safely executing long tasks in a different thread than the GUI, while allowing an easy event-driven interface to perform the task and respond to events (such as detecting work progress). There are even
versions of this for .NET 1.1 courtesy of
Juval Lowy.
One of the things it does
not support is the ability to Cancel the running task
immediately rather than waiting for the code to process the Cancel Request (which is vital if your “DoWork” code contains tasks that individually take a long time to process). With some Reflectoring, I was able to overcome this obstacle and provide a solution for this problem.
For the full details and download in VB.NET and C#, read the full article: