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
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.
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 ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SectionCritiqueDébut("SctRappel") // Du code qui lit la base de donnée SectionCritiqueFin("SctRappel")
Partager