How to dispose the local variable that contains event
<blockquote>
  <p><strong>Possible Duplicate:</strong><br>
  <a href="http://stackoverflow.com/questions/298261/do-event-handlers-stop-garbage-collection-from-occuring">Do event handlers stop garbage collection from occuring?</a>  </p>
</blockquote>



<p>I had one wp7 application like this:</p>

<pre><code>private void button1_Click(object sender, RoutedEventArgs e)
{
    GeoCoordinateWatcher watcher = new GeoCoordinateWatcher();
    watcher.PositionChanged += new EventHandler&lt;GeoPositionChangedEventArgs&lt;GeoCoordinate&gt;&gt;(watcher_PositionChanged);
    watcher.Start();
}

void watcher_PositionChanged(object sender, GeoPositionChangedEventArgs&lt;GeoCoordinate&gt; e)
{
    Debug.WriteLine(e.Position.Timestamp.ToString());
}
</code></pre>

<p>After I click the button twice,the Console will output the Timestamp twice.
But the watcher was a local variable!
What's wrong with it?
And how can I distory it?</p>
