title: Async Disposable.Create
body: <p><a href="https://msdn.microsoft.com/en-us/library/system.reactive.disposables.disposable.create(v=vs.103).aspx" rel="noreferrer">Disposable.Create</a> require an <code>Action</code> as parameter. The <code>Action</code> is run when the Rx subscription is being disposed.</p>
  
  <p>When disposing a Rx subscription I’d like to run some asynchronous clean up code, however using <code>async () =&gt;</code> with <code>Action</code> is identical to <code>async void</code>, which I’d like to avoid. For more details on why I want to avoid this, see <a href="https://msdn.microsoft.com/en-us/magazine/jj991977.aspx" rel="noreferrer">here</a>. </p>
  
  <p>Is it possible to create something like a <code>Disposable.AsyncCreate</code>, which accepts <code>Func&lt;Task&gt;</code> rather than <code>Action</code>. If so how should I use it as part of a <code>CompositeDisposable</code>?</p>
  
  <p>Or are there other patterns for dealing with asynchronous Disposal?</p>