title: Cleaning thread created by BeginOutputReadLine
body: <p>I'm working on a winform app in C# which as to launch others exectuables.
  It works pretty fine.</p>
  
  <p>But I notice it slow down after some launches. So I monitored threads and discovered that :</p>
  
  <pre><code>_windowsProcess.BeginOutputReadLine();
  _windowsProcess.BeginErrorReadLine();
  </code></pre>
  
  <p>Creates two threads. That's normal as I use this to get some informations with event handlers as I need asynchronous logs.</p>
  
  <p>When my process is killed (no matter the way it is), I use :</p>
  
  <pre><code>_windowsProcess.CancelOutputRead();
  _windowsProcess.CancelErrorRead();
  </code></pre>
  
  <p>I hoped this would kill my two extra threads, but it doesn't. When I read the MSDN it says that it stop handling events, but if I use BeginOuputReadLine again I could reuse the buffer. So I suppose it means : "we don't kill threads".</p>
  
  <p>I don't need this, and I wan't to kill my processes, it there a work around ?</p>
  
  <p>By the way, even if I delete the buffer doing :</p>
  
  <pre><code>_windowsProcess.OutputDataReceived -= new DataReceivedEventHandler(OnDataReceived);
  _windowsProcess.ErrorDataReceived -= new DataReceivedEventHandler(OnDataReceived);
  </code></pre>
  
  <p>I've the same issue.</p>
  
  <p>Thanks in advance !</p>