Bonjour,
je me permets de venir poster sur ce forum, car j'essai d'apprendre la POO et j'ai un souci avec l'utilisation de la classe Timer.
Je tiens à préciser que j'ai déjà pratiqué le C#, mais jamais de façon propre avec la POO.
J'ai créé une classe Alarm que j'instancie en cliquant sur le bouton de mon formulaire...
Lorsque je créer deux alarmes, elles se créées bien, affichent les messages et sonnent. Par contre, lorsque je clique sur le bouton permettant de supprimer une alarme, cela supprime la dernière alarme créée. Lorsque je clique une seconde fois, cela ne fait rien et une des deux alarmes continuent de sonner...
J'ai beau essayer de comprendre, je n'arrive pas, pourtant j'ai cherché (lecture de livre sur la POO, suivi de tutos...).
Voici mon code
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
31
32
33
34
35
36
37
38
39
40
41 public class Alarm { double tempsInterval; private static System.Timers.Timer MonAlarme; // Déclaration public Alarm(double interval) { tempsInterval = interval; } private void TempsEcoulee(object sender, ElapsedEventArgs e) { MessageBox.Show("temps du timer " + tempsInterval + " est écoulé !!" + e.SignalTime); } public void Creer() { MonAlarme = new System.Timers.Timer(tempsInterval); //Instantiation MonAlarme.Elapsed += TempsEcoulee; MonAlarme.AutoReset = true; } public void Start() { MonAlarme.Start(); } public void Stop() { MonAlarme.Stop(); MonAlarme.Dispose(); } public void Afficher() { throw new System.NotImplementedException(); } }Avez-vous une idée de ce qu'il peut se passer ?
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
31
32
33
34 public partial class Form1 : Form { Alarm PremiereAlarm; Alarm HAlarm; public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { PremiereAlarm = new Alarm(Convert.ToDouble(textBox1.Text)); PremiereAlarm.Creer(); PremiereAlarm.Start(); } private void button2_Click(object sender, EventArgs e) { PremiereAlarm.Stop(); } private void button3_Click(object sender, EventArgs e) { HAlarm = new Alarm(Convert.ToDouble(textBox1.Text)); HAlarm.Creer(); HAlarm.Start(); } private void button4_Click(object sender, EventArgs e) { HAlarm.Stop(); } }
Je vous remercie d'avance.
Partager