Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Thread stürzt bei Änderung ab? (https://www.delphipraxis.net/70751-thread-stuerzt-bei-aenderung-ab.html)

moritz 4. Jun 2006 01:04


Thread stürzt bei Änderung ab?
 
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ß

moritz 4. Jun 2006 15:06

Re: Thread stürzt bei Änderung ab?
 
*push*

Ich bekomme "Thread-Fehler: Zugriff verweigert (5)" - Dazu findet nichtmal Google was...

guste 5. Jun 2006 00:14

Re: Thread stürzt bei Änderung ab?
 
Möglicherweise tritt die Exception im Eventhandler von OnStep auf. Ich tippe auf einen Dateizugriff im Eventhandler.

Auf Verdacht mal probieren.

Delphi-Quellcode:
try
  if Assigned(OnStep) then
              OnStep(Timecode);
except
  raise Exception.Create('Tada!');
end;
Sonst bitte mehr Quellcode zeigen.

moritz 5. Jun 2006 10:57

Re: Thread stürzt bei Änderung ab?
 
Moin!

D.h. Events können auch dem Thread selber Probleme machen?

Gruß

SirThornberry 5. Jun 2006 11:15

Re: Thread stürzt bei Änderung ab?
 
Events können immer Probleme machen wenn in dem Eventhandler fehler vorhanden sind. Das hat nix damit zu tun das du aus dem Thread heraus das auslöst.

moritz 5. Jun 2006 11:18

Re: Thread stürzt bei Änderung ab?
 
Moin!

Okay, d.h. ich werde einfach mal alle Fehler abfangen, die mir in meinem Thread irgendwie über den Weg laufen könnten.

Was ich ansonsten gestern noch gemacht habe ist das ganze richtig Thread-Safe gemacht. Ich hatte das davor etwas "eigen" gelöst, dank Florian's Hilfe mach ich das jetzt mit CriticalSections.

Sobald ich das alles mal auf dem 233'er getestet hab', geb' ich bescheid.

Danke & Gruß


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:19 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz