title: How do I use System.Linq.Observable.Throttle()
body: <p>I have the following code that uses the Observable class from System.Reactive. I'm using the November 2009 Silverlight 3 toolkit.</p>
  
  <pre><code>private IObservable&lt;Event&lt;EventArgs&gt;&gt; _ob;
  private IDisposable _proxy;
   ... 
  
  private void Init()
  {
    _ob = Observable
             .FromEvent&lt;EventArgs&gt;( x_Grid, "LayoutUpdated" )
             .Throttle( 2000 );  // *** &lt;- The problem
    _proxy = _ob.Subscribe( () =&gt; { } );
  }
  </code></pre>
  
  <p>The code snippet results in the exception:</p>
  
  <pre><code>System.ObjectDisposedException: Cannot access a disposed object.
     at System.Threading.TimerBase.ChangeTimer(UInt32 dueTime, UInt32 period)
     at System.Threading.Timer.Change(Int32 dueTime, Int32 period)
     at System.Linq.Observable.&lt;&gt;c__DisplayClass175`2.&lt;&gt;c__DisplayClass17a.&lt;Generate&gt;b__173(Object _)
     at System.Threading._TimerCallback.TimerCallback_Context(Object state)
     at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
     at System.Threading._TimerCallback.PerformTimerCallback(Object state)
  </code></pre>
  
  <p>If the Throttle() method is not present, the code works fine. The exception stack trace indicates accessing a disposed object. The only disposable object I am aware of is the one returned by the Subscribe() call: but this has not been disposed.</p>
  
  <p>Can someone point to the problem with this code?</p>