Moin!
Ich habe einen Thread programmiert, in dem ein Timecode läuft und der zu einem gewissen Timecode ein Ereignis auslöst. Die Timecodes, zu denen ein Ereignis ausgelöst werden soll, sind in einem Array gespeichert.
Delphi-Quellcode:
TTimecode = Integer;
[...]
procedure TTimeThread.Execute;
var
lI: Integer;
begin
inherited;
while not Terminated do
begin
// Timecode aktualisieren
[...]
// Wenn kein Editiervorgang am laufen ist
if not Self.EditSteps then
begin
// Step auslösen?
if Length(Steps) > 0 then
for lI := 0 to Length(Steps) - 1 do
if (Steps[lI] >= prevTimecode) and (Steps[lI] < Timecode) then
if Assigned(OnStep) then
OnStep(Timecode);
end;
[...]
// Auflösung einhalten
Sleep(Resolution);
end;
end;
(Code gekürzt)
Dabei wird Timecode.Steps verändert, davor wird der Thread allerdings "Suspendiert" und danach wieder Resumed. Dennoch stürzt der Thread ab, und zwar mit einem Zugriffsfehler (5).
Das ganze passiert nicht auf meinem PC, sondern auf einem alten 233MhZ Laptop, auf dem ich nicht debuggen kann.
Kann jemand von euch sehen / aus Erfahrung raten wo das Problem verborgen liegt?
Gruß
"Optimistisch ist diejenige Weltanschauung, die das Sein höher als das Nichts stellt und so die Welt und das Leben als etwas an sich Wertvolles bejaht."
Albert Schweitzer