Bonjour,
Je voudrais faire apparaitre une fenêtre en WPF puis fermer à la fois la fenêtre et l'application :
- Soit au clic sur le bouton OK
- Soit au bout de 3s
J'ai donc fait ceci.
Code c# : 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
31 public partial class UpdateInProgress : System.Windows.Window { public static event EventHandler OnWindowDoClose; private readonly Timer _TimerClose; public UpdateInProgress() { InitializeComponent(); OnWindowDoClose += delegate { CloseAll(); }; _TimerClose = new Timer(3000); _TimerClose.Elapsed += delegate { if (OnWindowDoClose != null) OnWindowDoClose(this, null); }; _TimerClose.Start(); } private void BtCloseApp_Click(object sender, RoutedEventArgs e) { CloseAll(); } private void CloseAll() { Close(); App.Close(); } }
1) Si je clique sur le bouton => OK
2) Si j'attends 3s => ERREUR
J'obtiens dans CloseAll() lors de l'appel à Close();
Je pensais qu'en appelant CloseAll() au moment ou l'évènement est levé mais ça ne passe pas. Quelqu'un aurait il une idée svp?Le thread appelant ne peut pas accéder à cet objet parce qu'un autre thread en est propriétaire.
Partager