27
BackgroundWorker is actually a wrapper for asynchronous thread invocation via delegates - using reflector one can see it calls the begin/end invoke methods accordingly. This differs from a System.Threading.Thread in that it uses the threadpool as opposed to starting up a brand new thread.
The main reason for using background worker is that it plugs in nicely with windows forms applications.