Schön, dass Du Dir Zeit für mich genommen hast, um zu antworten. Offensichtlich ist hier doch jemand unterwegs.
Du solltest den EventHandler beim Schließen wieder freigeben.
Nach meinem Verständnis, sollte das in der Close()-Methode passieren.
Dazu ist es wiederum notwendig, das Timer-Object im Klassenscope als static zu deklarieren, da ich mich ansonsten ausserhalb des Zugriffsbereichs befinde.
private static Bitmap bitmap = new Bitmap(16, 16);
private static Graphics graphics = Graphics.FromImage(bitmap);
private static NotifyIcon ni = new NotifyIcon();
private static ContextMenu cm = new ContextMenu();
private static Timer timer = new Timer();
private static void Close(object sender, EventArgs e)
{
timer.Tick -= ReFreshIcon;
Environment.Exit(0);
}
Womit Ich gedanklich in Summe wieder in Richtung b) schlittere;
Verkehrt so? => Aber was passiert, wenn der Prozess von außen abgeschossen wird?
Wie lange bleiben die Referenzen auf dem Heap bzw wann wirkt der Garbage-Collector?
Tiefergehendes OOP-Verständnis:
Was oder wen würdest Du zum Nachlesen/Anschauen empfehlen?
|