title: Thread Error: The Handle is Invalid (6) when trying to Free a suspended thread
body: <p>In a given example I am receiving an exception when calling <code>AThread.Free.</code></p>
  
  <pre><code>program Project44;
  
  {$APPTYPE CONSOLE}
  
  uses
    SysUtils, Classes, Windows;
  
  type
    TMyException = class(Exception);
  
  var
    AThread: TThread;
  begin
    AThread := TThread.Create(True);
    try
      AThread.FreeOnTerminate := True;
      //I want to do some things here before starting the thread
      //During the setup phase some exception might occur, this exception is for simulating purpouses
        raise TMyException.Create('exception');
    except
      AThread.Free; //Another exception here
    end;
  end.
  </code></pre>
  
  <p>I have two questions:</p>
  
  <ol>
  <li><p>How should I free <code>AThread</code> instance of <code>TThread</code> in a given example?</p></li>
  <li><p>I don't understand, why <code>TThread.Destroy</code> is calling <code>Resume</code> before destroing itself. What is the point of this?</p></li>
  </ol>