@Luckie: Du klingst ja fast so, als wäre ein kleiner Semaphor oder Mutex zu viel Aufwand!
@HenryHux: Spätestens, wenn Dir dein Programm auf einem System mal gewaltig um die Ohren fliegt, weil Windows2 Programmen gleichzeitig den Zugriff auf die Daten gibt, die da unsynchronisiert rumflattern, weißt Du, dass Du das hättest vermeiden können.
Und SOOOOO schwer ist das auch nicht:
Programminitialisierung:
Alle Programme legen (den gleichen!!!) Semaphor/Mutex an (holen sich da ein Handle, bei Mutexen handhabt Windows das etwas anders als POSIX, ACHTUNG!)
Lesen von Daten:
- Programm X sperrt den Semaphor/Mutex
- Programm X schaut, ob's Änderungen gab
- Programm X KOPIERT sich seinen Status
- Programm X gibt den Semaphor/Mutex wieder frei
- Programm X verarbeitet das Änderungsereignis (falls vorhanden)
Schreiben von Daten:
- Programm X sperrt den Semaphor/Mutex
- Programm X schreibt die neuen Daten
- Programm X gibt den Semaphor/Mutex wieder frei
- Programm X Signalisiert anderen Prozessen Änderungen (oder andere Programme pollen)
In Code sind das bei richtiger Implementierung kaum mehr als 20 Zeilen je Routine. Spart einem RICHTIG viel Arbeit beim Debugging!
_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.