Bonjour,
J'ai développé deux pages view.aspx.cs, Pay.aspx.cs, et une classe MyTimer.cs.
La page view doit créer un timer, et la page Pay.aspx.cs doit créer une variable session "EndTimer".
MyTimer.cs doit arrêter le timer quand il détecte la variable session EndTimer (pe être il existe une technique plus simple sachant que mytimer.cs est une classe métier) crée par la page Pay.aspx.cs.
ça ne fonctionne pas.
Voici le code de mes différentes pages:
View.aspx.cs:
My Timer.cs :
Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public partial class view : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { MyTimer mt = new MyTimer(); mt.createTimer(); object MonObjet = null; string IDvariable = "EndTimer"; MonObjet = HttpContext.Current.Session[IDvariable]; }
Pay.aspx.cs
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63 public class MyTimer { private System.Timers.Timer aTimer; private static int nbit = 0; public MyTimer() { } public void createTimer() { // Create a timer with a ten second interval. aTimer = new System.Timers.Timer(500); // Hook up the event handler for the Elapsed event. aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent); // Only raise the event the first time Interval elapses. aTimer.AutoReset = true; aTimer.Enabled = true; } public void deleteTimer() { aTimer.Stop(); } private void OnTimedEvent(object source, ElapsedEventArgs e) { object _value = null; try { // Récupérer le contexte de la requête HttpContext _context = HttpContext.Current; // Accéder à l'objet intrinsèque Session _value = _context.Session["EndTimer"]; } catch (Exception excep) { } finally { if (_value == null) { Debug.WriteLine("Hello World!" + nbit); nbit = nbit + 1; } else { Debug.WriteLine("FIN TIMER!!!!!!!!!" + nbit); deleteTimer(); } } } }
Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 public partial class Pay : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string IDvariable = "EndTimer"; HttpContext.Current.Session.Add(IDvariable, ""); } }
Partager