DelphiでTThreadを使っていると、「スレッドエラー:ハンドルが無効です。(6)」というエラーが生成されることがあります。
FreeOnTerminateが設定されているとなぜか起こる場合がよくあるので、もしFreeOnTerminate = Trueで使っている場合は、Falseに切り替え、外部からThreadにFreeをかけるようにすると直るときがあります。
Execute内でSleepを使っていたり、重い処理などを行っている場合によくある感じです。
ただ、ものすごい単純なスレッドでもなるため、根本的な原因は不明です。
メインスレッドとのタイミングの違いかな?
どちらにしろデバッガでも原因が出ないため直しにくいエラーです。