What is the difference between creating a thead using BackgroundWorker and creating a thread using System.Threading.Thread?