The BackgroundWorker component makes multithreading easier, but not easy. I encourage you to use it—but sparingly, and only when it’s really important. Most of the time you’ll be able to get the multithreading job done using the BackgroundWorker component. The key is to remember to marshal calls between background threads and foreground Forms controls to avoid problems.
Paul Kimmel is an architect for TriState Hospital Supply Corporation and the cofounder of the Greater Lansing Area .NET Users Group (glugnet.org). Look for his recent books UML DeMystified (McGraw-Hill/Osborne) and C# Express for Professional Programmers (Addison-Wesley). If you have a programming question, contact Paul at firstname.lastname@example.org.