title: What is the correct way to cancel an async operation that doesn't accept a CancellationToken?
body: <p>What is the correct way to cancel the following?</p>
  
  <pre><code>var tcpListener = new TcpListener(connection);
  tcpListener.Start();
  var client = await tcpListener.AcceptTcpClientAsync();
  </code></pre>
  
  <p>Simply calling <code>tcpListener.Stop()</code> seems to result in an <code>ObjectDisposedException</code> and the <code>AcceptTcpClientAsync</code> method doesn't accept a <code>CancellationToken</code> structure.  </p>
  
  <p>Am I totally missing something obvious?</p>