title: Will an object be disposed automatically after an asynchronous event it subscribed to is raised?
body: <p>Let's suppose I have this function that can be called several times from the main thread. Every time this is called, I create a <code>WebClient</code> object to download some data asynchronously.</p>
  
  <p>My question... is this safe to do? Is the <code>WebClient</code> object released after the event is called? I wouldn't like to keep allocating memory if it is not going to be freed automatically.</p>
  
  <p>My application is for WP7 with Silverlight.</p>
  
  <p>Thanks!</p>
  
  <pre><code>void DownloadData(string cURL)
  {
      WebClient webClient = new WebClient();
      webClient.DownloadStringCompleted +=
         new System.Net.DownloadStringCompletedEventHandler(
              webClient_DownloadStringCompleted);
      webClient.DownloadStringAsync(new Uri(cURL));
  }
  
  static void webClient_DownloadStringCompleted(object sender,
                        System.Net.DownloadStringCompletedEventArgs e)
  {
      ...
  }
  </code></pre>