![]() |
Sich überholende Events
Hallo Leute,
ich habe das folgende Problem: Ich muß sicherstellen das ein eine Reihe von selbst generierten Events genau in der Reihenfolge abgearbeitet werden wie sie auch gepostet werden. Da ich innerhalb des Events z.B. auch Mails mit den Indys verschicke passiert es mir schon mal das Event Nummer 2 abgearbeitet wird obwohl Nummer 1 noch gerade ne Mail verschickt. Wie kann ich das verhindern ohne viel Aufwand zu betreiben. QAD reicht völlig, der Bug muß raus. Ne richtige Lösung gibts dann später. |
Re: Sich überholende Events
Gib doch einfach deinen Events eine "Seriennummer" mit. Und damit meine ich nicht irgendeine kryptische Zahlenfolge, sondern eben die Zahl, welche der Stelle in der Reihenfolge entspricht. Dann kannst du ja die weitere Ausführung solange unterbrechen bis eben die fehlende vorige Nachricht angekommen ist. Deswegen kannst du ja aber durchaus schon eine spätere Nachricht mit in die Warteschlange einreihen. Ich gehe mal davon aus, daß du eine Warteschlange hast, da ansonsten bei 1:1 Verarbeitung solche Probleme ja nicht autreten dürften.
|
Re: Sich überholende Events
Es könnte helfen eine Critical Section in den Event-Handlern zu benutzen (allerdings ginge dabei die parallele Verarbeitung verloren) - just another hack.
|
Re: Sich überholende Events
@OLLI
Nein ich habe keine Warteschlange. Mein Problem ist das innerhalb der Indys wohl irgendwo ein ProcessMessages aufgerufen wird und obwohl der 1 Event noch nicht abgearbeitet ist der nächste schon bearbeitet wird. @Nico: War meine erste Idee, funzt aber nicht da beide Events innerhalb eines Threads laufen. |
Re: Sich überholende Events
Zitat:
|
Re: Sich überholende Events
Zitat:
Und weshalb ist die Reihenfolge so wichtig - muß ja einen Grund geben. |
Re: Sich überholende Events
Das sind Fenstermessages.
Zitat:
Die Weiterverarbeitung der Daten läßt sich aus Threadsicherheitsgründen leider nun mal auch nicht im Indy-Thread erschlagen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:17 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