Lecture d'un fichier HF C/S dans un thread
Hello !
Aujourd'hui, il nous est arrivé son petit lot de problèmes. Celui-ci est particulièrement perfide et je me suis dit que j'allais le partager avec vous. Accessoirement, cela va me permettre d'approfondir mes connaissances.
Dernièrement, je me suis lancé dans les threads pour faire un système de "toast" ad hoc interne à une application. La classe gérant ces toasts va voir dans la base de données en HF C/S si de nouveaux messages sont arrivés. Vu que ce système tourne en "fond" durant l'utilisation du programme, je me suis tourné vers les threads.
Quelques mois plus tard, une mise à jour est déployée. Celle-ci lance une fenêtre qui va checker la même table que la classe gérant les toasts. Imaginez le résultat... PATATRAC :aie:
Du coup, je considère la table lue comme étant une "sorte de section critique". Je veux éviter d'y accéder en même temps depuis deux threads différents.
Code:
1 2 3 4
|
SectionCritiqueDébut("SctRappel")
// Du code qui lit la base de donnée
SectionCritiqueFin("SctRappel") |
Voilà la solution actuelle, très simpliste et pondue en quelques minutes. Pour l'instant, ça a l'air de fonctionner. Je m'interrogeais et me demande s'il y a une manière plus élégante de le faire ?