Bonjour à tous,
Suite à de longues recherches infructueuses et avant de m'avouer définitivement vaincu, j'aimerais avoir l'avis de la communauté :
Le cahier des charges :
Un poste client contenant un dataset qui correspond au chargement d'une table du sgbd distant, mais cette table ayant été modifiée entre temps par un autre client de l'application, la version du dataset en mémoire sur le poste client n'est plus à jour.
Dans la mesure ou une connexion au sgbd peut etre lente, l'objectif est de récupérer les données (requete sql sur le sgbd) via un thread distinct du thread du formulaire du poste client pour ne pas bloquer l'interface client inutilement.
Je sais qu'il existe des threads background worker fait spécifiquement pour ca, mais mon objectif est d'essayer d'utiliser des fonctionnalités de plus bas niveau en termes de threading et d'isolation des données pour des raisons de portabilités vers d'autres langages et d'évolutivité en général. Et aussi pour savoir le faire.
Le problème est assez simple, j'en ai conscience mais je n'ai pas réussi. Est ce que certains d'entres vous pourraient me donner leur avis et me conseiller une méthode simple et élégante pour récupérer les données sans risque d'accès concurrents sur le dataset entre le thread ui et le thread récupérant les données d'une part, puis pour la mise à jour du thread ui d'autre part, une fois les données récupérées.
Par ailleurs si certains d'entres vous sont formés sur ce point quelles sont les pratiques recommandées pour ce type de mise à jour.
Merci beaucoup à vous,
Vincent.
Partager