Je travaille sur une application Windows Forms qui utilise NHibernate comme ORM. Notre modèle habituel ressemble à quelque chose comme :
- Obtenir le graphe d'objets de la base de données et remplir l'interface graphique.
- Permettre à l'utilisateur de modifier les données dans l'interface graphique
- Sauvegarde du graphique des objets dans la base de données
Cette notion d'unité de travail exige que la session NHibernate vive aussi longtemps qu'il le faut pour que l'utilisateur modifie les données et appuie sur le bouton Enregistrer. Par conséquent, notre session est instanciée à l'étape 1 et détruite à l'étape 3.
Maintenant, je veux afficher une animation de barre de progression indéterminée pendant l'opération de sauvegarde. Par conséquent, la session ne peut pas vivre sur le thread de l'interface graphique, car l'animation se figerait si la sauvegarde prend du temps.
Comment puis-je résoudre au mieux ce problème ?