Jesse Liberty explains how to manage limited resources, and to dispose of any unmanaged resources with Reactive Extensions.
Source: Jesse's Blog
While Reactive Extensions will clean up after itself, it is still your responsibility to manage limited resources, and to dispose of any unmanaged resources.
You can, however, use a variant on the using statement with Observables.
To do so, call the static parameterized Using method on Observable. This returns an IObservable<char> and takes two parameters. The first parameter is a Func that returns a streamReader and the second is a Func that takes the StreamReader produced by the first and returns an IObservable of char.