AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Verständnisfrage zur Thread-Synchronisation

Ein Thema von EdAdvokat · begonnen am 10. Apr 2022 · letzter Beitrag vom 22. Apr 2022
Antwort Antwort
Seite 5 von 5   « Erste     345   
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.164 Beiträge
 
Delphi 11 Alexandria
 
#41

AW: Verständnisfrage zur Thread-Synchronisation

  Alt 21. Apr 2022, 15:12
@Uwe,
Wenn ich das so anwende bekomme ich folgenden Fehler:
Zitat:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Thread_Tech_Demo.exe ist eine Exception der Klasse EThread mit der Meldung 'Start kann für einen laufenden oder unterbrochenen Thread nicht aufgerufen werden' aufgetreten.
---------------------------
Anhalten Fortsetzen Hilfe
---------------------------

@himitsu,
Das Assigned( FOnChange ) vor Synchronize zu setzen klingt generell logisch, behebt aber das Problem nicht.
Es ist ja ein worst case Fall mit der while-Bedingung. Da werden riesige Mengen von Events ausgelöst, was auch völlig unnötig ist. Daher habe ich das jetzt so gelöst:
Delphi-Quellcode:
          IF ( I2 mod 10000 ) = 0 THEN { ! sonst blockiert auf Grund der schieren Menge von Events das Hauptprogramm }
          BEGIN
            IF Assigned( FOnChange ) THEN
            BEGIN
              Synchronize(
                PROCEDURE
                BEGIN
                  FOnChange( Self, I1, I2 ); // Beispiel
                END );
            END;
          END;


@Blup,
Zitat:
Wurde zwar eigentlich bereits gesagt, aber ist leicht zu überlesen.
Wenn man sich nicht auskennt ist es schwierig das alles so zu deuten.
Mir (uns) Neulingen in diesem Thema würde am besten ein fertiges *korrektes* Beispiel helfen. Es geht mir persönl. hier um Grundlagen für die Zukunft, die ich mir auch gerne weiter erarbeite, aber von allein kommt man da nur schwer drauf.

Schon mal vielen Dank bis hierher!

Edit: Ich hab hier mal mein jetzigen Stand angehängt.
Angehängte Dateien
Dateityp: zip Thread Sample.zip (6,2 KB, 2x aufgerufen)
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)

Geändert von juergen (21. Apr 2022 um 15:43 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.006 Beiträge
 
Delphi 12 Athens
 
#42

AW: Verständnisfrage zur Thread-Synchronisation

  Alt 21. Apr 2022, 15:17
@Uwe,
Wenn ich das so anwende bekomme ich folgenden Fehler:
Na klar! Das muss ja auch True heißen:
Delphi-Quellcode:
  FMy_Thread2 := TTheThread2.Create(True);
  FMy_Thread2.OnChange := DoOnChange; { ! }
  FMy_Thread2.Start;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
EdAdvokat
Online

Registriert seit: 1. Mai 2016
Ort: Berlin
414 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#43

AW: Verständnisfrage zur Thread-Synchronisation

  Alt 22. Apr 2022, 11:44
Hallo zusammen,
Zitat:
Wenn man sich nicht auskennt ist es schwierig das alles so zu deuten.
Mir (uns) Neulingen in diesem Thema würde am besten ein fertiges *korrektes* Beispiel helfen. Es geht mir persönl. hier um Grundlagen für die Zukunft, die ich mir auch gerne weiter erarbeite, aber von allein kommt man da nur schwer drauf.
Ist das von #Jürgen gepostete Beispiel nun das erwähnte *korrekte* Beispiel für die gestellte Aufgabe oder sind da noch Verbesserungen angezeigt?
Norbert

Geändert von EdAdvokat (22. Apr 2022 um 13:07 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.164 Beiträge
 
Delphi 11 Alexandria
 
#44

AW: Verständnisfrage zur Thread-Synchronisation

  Alt 22. Apr 2022, 13:00
Mein hochgeladenes Projekt beinhaltet alle Ratschläge bis hierhin.
Fehlerbehandlung im Thread: Das hatte ich mir selbst erarbeitet und hoffe es ist nun alles so richtig.

Aber für weitere Verbesserungsvorschläge wäre ich (wir) natürlich dankbar.
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.006 Beiträge
 
Delphi 12 Athens
 
#45

AW: Verständnisfrage zur Thread-Synchronisation

  Alt 22. Apr 2022, 13:32
Wenn du auch an einer etwas anderen Herangehensweise an Threads in VCL-Anwendungen interessiert bist, wirst du vielleicht in diesem Artikel fündig: Async Tasks in VCL Projects
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Edelfix

Registriert seit: 6. Feb 2015
Ort: Stadtoldendorf
213 Beiträge
 
Delphi 10.4 Sydney
 
#46

AW: Verständnisfrage zur Thread-Synchronisation

  Alt 22. Apr 2022, 14:21
@Uwe Sorry ich kann dein Beispiel nicht lesen. Es sieht nach Over Engineering aus. Mit Interface tue ich mich schwer.

Währe eine Interface freie Version möglich?

Geändert von Edelfix (22. Apr 2022 um 15:12 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 5 von 5   « Erste     345   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:51 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