Doofe Frage: Wofür soll der Thread gut sein, wenn du eh auf den Thread wartest?
Delphi-Quellcode:
while ( WaitForSingleObject( tQ.Handle, 100 ) = WAIT_TIMEOUT ) and
( A_Halt.Tag = 0 )
do begin
Application.ProcessMessages;
end;
Damit der Mainthread weiter laufen kann und die "Reagiert nicht" Meldung nicht kommt, würde ich mal vermuten...