Hi,
folgendes Problem habe ich in meiner C# Applikation. Ich benutzte einen
Timer mit einem EventHandler. Für die Synchronisation zwischen C#
Applikation und der GUI wird die Methode Invoke eingesetzt.
1 | delegate void InvokeProc();
|
2 | System.Timers.Timer Timer;
|
3 |
|
4 | public Form()
|
5 | {
|
6 | this.Timer = new System.Timers.Timer();
|
7 | this.Timer.Interval = 2;
|
8 | this.Timer.Elapsed += new ElapsedEventHandler(TimerEvent);
|
9 | this.Timer.Enabled = false;
|
10 | }
|
11 |
|
12 | public void TimerEvent(object sender, ElapsedEventArgs e)
|
13 | {
|
14 | try
|
15 | {
|
16 | this.Invoke(new InvokeProc(OnTimer));
|
17 | }
|
18 | catch { };
|
19 | }
|
20 |
|
21 | public void OnTimer()
|
22 | {
|
23 |
|
24 | // do somthing //
|
25 | }
|
Egal was ich tue den Timer kann ich nicht stoppen.
1 | this.Timer.Dispose();
|
2 | this.Timer.Stop();
|
3 | this.Timer.Enables = false;
|
Alle drei Möglichkeiten habe ich ausprobiert. Woran könnte dies liegen ?
Gibt es eine Möglichkeit den Timer überhaupt zu stoppen ?