AW: Verständnisfrage zur Thread-Synchronisation
Liste der Anhänge anzeigen (Anzahl: 1)
@Uwe,
Wenn ich das so anwende bekomme ich folgenden Fehler: Zitat:
@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:
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. |
AW: Verständnisfrage zur Thread-Synchronisation
Zitat:
Delphi-Quellcode:
FMy_Thread2 := TTheThread2.Create(True);
FMy_Thread2.OnChange := DoOnChange; { ! } FMy_Thread2.Start; |
AW: Verständnisfrage zur Thread-Synchronisation
Hallo zusammen,
Zitat:
|
AW: Verständnisfrage zur Thread-Synchronisation
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. |
AW: Verständnisfrage zur Thread-Synchronisation
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
|
AW: Verständnisfrage zur Thread-Synchronisation
@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? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:46 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