Forum: Object-Pascal / Delphi-Language
Delphi
by TomDooley,
5. Jul 2006
:wiejetzt: jetzt bin ich ein wenig verwirrt... Müsste meine Version jetzt doch funktionieren? Was mache ich dann trotzdem falsch?
Forum: Object-Pascal / Delphi-Language
Delphi
by TomDooley,
4. Jul 2006
Ich arbeite mit Delphi 5:
function TThread.WaitFor: LongWord;
var
Msg: TMsg;
H: THandle;
begin
H := FHandle;
if GetCurrentThreadID = MainThreadID then
while MsgWaitForMultipleObjects(1, H, False, INFINITE,
QS_SENDMESSAGE) = WAIT_OBJECT_0 + 1 do PeekMessage(Msg, 0, 0, 0, PM_NOREMOVE)
Forum: Object-Pascal / Delphi-Language
Delphi
by TomDooley,
4. Jul 2006
Hallo Chris
Ich denke das würde sich sicher finden lassen. Das heisst aber das ich Terminate und WaitFor gar nicht mehr verwende... Was ist denn überhaupt der Sinn dahinter??
Danke und Gruss
Tom
Forum: Object-Pascal / Delphi-Language
Delphi
by TomDooley,
4. Jul 2006
ok, das habe ich tatsächlich falsch verstanden. Ich bin eigentlich davon ausgegangen dass WaitFor wartet bis Execute beendet wird. Da dies offensichtlich nicht der Fall ist, ist auch das Verhalten plausibel.
Gibt es trotzdem eine Lösung für mein Problem?
Ich probierte übrigens auch das Close aus dem Hauptthread heraus auszulösen. Da aber unmittelbar anschliessend der Hilfsthread beendet...
Forum: Object-Pascal / Delphi-Language
Delphi
by TomDooley,
4. Jul 2006
Close ist eine Funktion einer Hilfsunit, welche ausschliesslich im Hilfsthread verwendet wird.
Forum: Object-Pascal / Delphi-Language
Delphi
by TomDooley,
4. Jul 2006
Hallo
Ich möchte in meinem Hauptthread warten bis mein Hilfsthread beendet ist. Alles funktioniert ohne Probleme solange ich meine blockierende "Aufräume-Funktion" Close im Hilfsthread nicht aufrufe:
begin
Hilfsthread.Terminate;
Hilfsthread.WaitFor;
//alles andere freigeben
end;