Einzelnen Beitrag anzeigen

Benutzerbild von Kedariodakon
Kedariodakon

Registriert seit: 10. Sep 2004
Ort: Mönchengladbach
833 Beiträge
 
Delphi 7 Enterprise
 
#1

Mein Thread und die Classes.pas...

  Alt 22. Okt 2004, 12:40
So ich habe follgendes Problem, ich rufe von außerhalb Destroy des Threads auf, obwohl er noch arbeitet (Mehr oder Weniger)...

Aber er wird net beendet, sondern er hängt in der Classes.pas im Wahrstem Sinne des Wortes in einer Endlosschleife fest...

Und zwar im Unterem Teil...
WaitResult ist immer 258...

Delphi-Quellcode:
function TThread.WaitFor: LongWord;
{$IFDEF MSWINDOWS}
var
  H: array[0..1] of THandle;
  WaitResult: Cardinal;
  Msg: TMsg;
begin
  H[0] := FHandle;
  if GetCurrentThreadID = MainThreadID then
  begin
    WaitResult := 0;
    H[1] := SyncEvent;
    repeat
      { This prevents a potential deadlock if the background thread
        does a SendMessage to the foreground thread }

      if WaitResult = WAIT_OBJECT_0 + 2 then
        PeekMessage(Msg, 0, 0, 0, PM_NOREMOVE);
      WaitResult := MsgWaitForMultipleObjects(2, H, False, 1000, QS_SENDMESSAGE);
      CheckThreadError(WaitResult <> WAIT_FAILED);
      if WaitResult = WAIT_OBJECT_0 + 1 then
        CheckSynchronize;
    until WaitResult = WAIT_OBJECT_0;
  end else WaitForSingleObject(H[0], INFINITE);
  CheckThreadError(GetExitCodeThread(H[0], Result));
end;
Tjo wie bekomm ich den da raus, damit er endlich vernichtet wird?

Bye

Edit:
Zitat von Classes.pas:
Delphi-Quellcode:
      { This prevents a potential deadlock if the background thread
        does a SendMessage to the foreground thread }
Christian
  Mit Zitat antworten Zitat