Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Eventdauerfeuer?? (https://www.delphipraxis.net/88258-eventdauerfeuer.html)

ozz 12. Mär 2007 17:41


Eventdauerfeuer??
 
Hallo Leute,
ich habe ein Verständnisproblem im Zusammenhang mit Events. Angenommen ich habe den folgenden Event
Delphi-Quellcode:
type TJobsDoneEvent = procedure (NumberOfErrors:ShortInt) of object;
und starte Ihn in so kurzen Abständen, daß die Behandlungsroutine noch nicht fertig ist, bevor der neue Event ausgelöst wird. Sind dann die Daten aus dem ersten Aufruf futsch,wartet das zweite Event auf das Ende von ersten Event?? Ich verstehe es nicht ganz.Wird eine Queue verwendet???

Danke für die Aufklärung.

Alexander Roth 12. Mär 2007 17:49

Re: Eventdauerfeuer??
 
Wie rufts du das Event auf?

Mit einem neuen Thread, ohne einem neuen Thread oder mit einer Windows-message?
Denn wann sollte sich das Dauerfeuer ergeben?

ozz 12. Mär 2007 20:06

Re: Eventdauerfeuer??
 
Hallo Allexander,
der Aufruf erfolgt so
Delphi-Quellcode:
if Assigned(OnJobResult) then OnJobResult(index);

Alexander Roth 13. Mär 2007 06:22

Re: Eventdauerfeuer??
 
Ja ja, das ist mir klar, aber das beantwortet meine Frage nicht:
Zitat:

Zitat von Alexander Roth
Mit einem neuen Thread, ohne einem neuen Thread oder mit einer Windows-message?
Denn wann sollte sich das Dauerfeuer ergeben?

D.h. wo wird das
Delphi-Quellcode:
if Assigned(OnJobResult) then OnJobResult(index);
aufgerufen? Und wie diese Procedure/Function aufgerufen?

yörsch 13. Mär 2007 07:07

Re: Eventdauerfeuer??
 
HAI ozz,

versuchs sichtbar zumachen: also schleifen zähler nach außen anzeigen (bitte ohne debugger, den der hat einen eigenen thread!)

und ohne neuen Thread was Alexander fragte geht das alles schön nacheinander...

ozz 13. Mär 2007 20:13

Re: Eventdauerfeuer??
 
Hallo Alexander, hallo yörsch

Danke für die Hilfe.

Also der Event wird innerhalb einer sync- Funktion ausgelöst. Die Behandlungsroutine dazu ist jedoch im Hauptprogramm.

Alexander Roth 14. Mär 2007 13:50

Re: Eventdauerfeuer??
 
Also das beantortet die Frage immer noch nicht ganzs so richtig. :roll:

Im Hauptprogramm? Heißt das jetzt im selben Thread oder nicht!!!?

Gruß Alexander



PS: Was ist eine sync-Function? :duck: Ist das irgendeine spezielle Art die ich kennen sollte, oder ist das einfach eine Synchronisations Funktion (also beschreibt die Aufgabe der Funktion)?

ozz 14. Mär 2007 17:07

Re: Eventdauerfeuer??
 
Hallo Alexander,
Danke das du so hartnäckig bist.

Der Aufruf erfolgt innerhalb der Sync Funktion, die nicht im Thread ist. Die Behandlungsroutine ist im Formular, also auch nicht im Thread.

Alexander Roth 14. Mär 2007 17:27

Re: Eventdauerfeuer??
 
Zitat:

Zitat von ozz
Danke das du so hartnäckig bist.

Jetzt überstrapazierst du aber meine Gedult langsam. :evil: :evil: :evil:

Zitat:

Zitat von ozz
Die Behandlungsroutine ist im Formular, also auch nicht im Thread.

Was heißt im Formular? Das Formular hat nämlich keinen neuen Thread.
Oder bist du dir absolut sicher, dass es einen eigenen Thread hat, weil du mit TThread abreitest?
Falls du dir nicht sicher bist, kann ich vielleicht den Code dazu sehen (und bitte nicht allzu sparsam), oder beschreibst du endlich mal ausführlich wie, wann warum, und wo diese synch-Funktion aufgefrufen wird.

Und meine Frage steht noch im Raum:
Zitat:

Zitat von Alexander Roth
Was ist eine sync-Function? :duck: Ist das irgendeine spezielle Art die ich kennen sollte, oder ist das einfach eine Synchronisations Funktion (also beschreibt die Aufgabe der Funktion)?

Gruß Alexander


PS: Sämtlichen ärgelichen Unterton will ich entschuldigen.
PPS: Wenn du willst, dass irgendjemand deine Frage beantwortet, solltest du genügend Infos geben, damit dies überhaupt möglich ist. :roll: Oder zumindest nachher ausführlich auf die Fragen antworten :!: :evil:
PPPS: Und würde ich nicht immer so eine nette Mail bekommen, hätte ich das Thema auch schon längst "vergessen".


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:58 Uhr.

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