@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.