title: wpf cancel backgroundworker on application exits
body: <p>In my application I have a main windows and into it, in a frame I load a page. This page do a long time task when the user press a button. My problem is that when long task is being doing and the user presses the close button of the main window, the application seems to not finish because I am debugging it in VS2008 and I can see the stop button highlighted. If I want to finish I have to press stop button, the application doesn't stop the debugging automatically on application exit. I thought .NET stops automatically backgroundworkers on application exits but I am not sure after seeing this behaviour. I have tried to force and cancel background worker in unloaded event page with something like this:</p>
  
  <pre><code>    private void Page_Unloaded(object sender, RoutedEventArgs e)
      {
          // Is the Background Worker do some work?
          if (My_BgWorker != null &amp;&amp; My_BgWorker.IsBusy)
          {
              //If it supports cancellation, Cancel It
              if (My_BgWorker.WorkerSupportsCancellation)
              {
                  // Tell the Background Worker to stop working.
                  My_BgWorker.CancelAsync();
              }
          }
  
  
      }
  </code></pre>
  
  <p>but with no success. After doing CancelAsync(), a few minutes after, I can see the backgroundworker finishes and raise RunWorkerCompleted and I can see the task is completed checking e.Cancelled argument in the event but after this event is exectued the application continues without exiting and I have no idea what is doing....</p>
  
  <p>I set WorkerSupportsCancellation to true to support cancel at the begining.</p>
  
  <p>I would apreciate all answers. Thanks.</p>