Guten Morgen liebe Community,
ich habe gerade ein merkwürdiges Verhalten des
Ganz simpler Test-Aufbau:
Der MainDialog ruft einen Dialog auf, wo sich ein
Beide sind
Jeder Timer schreibt in seinem Tick-Event eine Zeile mit einem Zähler in das Ausgabe-Fenster (
Wird nun das Form, in dem sich der Timer befindet, geschlossen, bleibt der
Dass der
Was ich aber nicht verstehe ist, dass ich das Form, wo sich der Timer drin befindet, in einemaufrufe verwende, welches auch durchläuft (Objekt sollte also disposed sein).
Wieso läuft hier der
Ich habe das Beispiel-Projekt angehangen...
Danke für Eure Infos
ich habe gerade ein merkwürdiges Verhalten des
System.Windows.Forms.Timer
festgestellt und würde gern wissen, wie das zu verstehen ist.Ganz simpler Test-Aufbau:
Der MainDialog ruft einen Dialog auf, wo sich ein
Timer als Component
und ein Timer als Nicht-Component
drin befindet.Beide sind
Enabled = true
und haben einen Interval von 1000ms.Jeder Timer schreibt in seinem Tick-Event eine Zeile mit einem Zähler in das Ausgabe-Fenster (
Console.WriteLine)
.Wird nun das Form, in dem sich der Timer befindet, geschlossen, bleibt der
Component-Timer
stehen, jedoch der Nicht-Component-Timer
nicht!Dass der
Component-Timer
nicht mehr weiter zum Tick-Event kommt, kann ich noch verstehen (Auszug aus dem Designer-Code):C#-Quellcode
- /// <summary>
- /// Clean up any resources being used.
- /// </summary>
- /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
- protected override void Dispose(bool disposing)
- {
- if (disposing && ( components != null ))
- {
- components.Dispose();
- }
- base.Dispose( disposing );
- }
Was ich aber nicht verstehe ist, dass ich das Form, wo sich der Timer drin befindet, in einem
Using-Statement
Wieso läuft hier der
Nicht-Component-Timer
dennoch weiter, obwohl das Form, wo er sich drin befindet, eigentlich disposed wurde?Ich habe das Beispiel-Projekt angehangen...
Danke für Eure Infos
Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „TRiViUM“ ()