Bonjour à tous
Je travaille avec Silverlight 3 dans IE ou Firefox. Mon application est pourvue d'un bouton "Déconnexion" qui, lorsqu'on appuie dessus, va insérer une ligne de log en base de données.
Seulement, les utilisateurs ont le droit de fermer le navigateur avec la croix, et je veux que ça insère de la même façon la ligne en base de données. Le problème, c'est que quand l'utilisateur ferme le navigateur, la ligne n'a pas le temps d'être insérée en base. J'ai donc testé plusieurs choses, sans succès.
Voici mon code actuel :
Le résultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 public MainPage() { InitializeComponent(); Application.Current.Exit += new EventHandler(Current_Exit); } private void Current_Exit(object sender, EventArgs e) { InsereLigne(); Thread threadSleep = new Thread(WaitForDisconnection); threadSleep.Start(); } private void WaitForDisconnection() { while (!ucLogin.IsDisconnected) // boolean qui m'indique quand l'insère est terminé { // test 1 int j = 0; for (int i = 0; i < 10000; i++) { j++; j--; } // test 2 System.Threading.Thread.Sleep(10000); } }
- test 1 : semble tourner en boucle indéfiniment quand on débug, et ferme direct le navigateur quand on arrête le debug
- test 2 : ferme direct le navigateur quand on passe sur le Sleep()
Merci de votre aide !
Partager