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 }