Das Problem hatte ich auch schon mal.

Das h�ngt irgendwie mit dem GarbageCollector zusammen.

Wenn du den Destruktor aufrufst dann wird das dem GarbageCollector �bergeben und der r�umt erst dann auf, wenn nicht mehr gen�gend Speicher im System verf�gbar ist.

Du musst also dem GarbageCollector explizit sagen, dass er den Destruktor ausf�hren soll.

 

-----Urspr�ngliche Nachricht-----
Von: Stephan Hartmann [mailto:[EMAIL PROTECTED]
Gesendet: Dienstag, 18. November 2003 14:29
An: [EMAIL PROTECTED]
Betreff: [Csharp.net] Constructor - Destructor

 

Hallo,

 

ich habe gerade nach alter C++ - Gewohnheit die sch�ne Sanduhrklasse versucht:

 

public class Sanduhr {

    private Cursor OldC;

    private Form m_Wnd;

 

     public Sanduhr(Form Wnd) {

         m_Wnd = Wnd;

         OldC = m_Wnd.Cursor;

         m_Wnd. Cursor = Cursors.WaitCursor;

     }

 

    ~Sanduhr() {

        m_Wnd.Cursor = OldC;

    }

}

(Anwendung ist in C++ - Programmen so, da� man nur eine Instanz der Klasse in der Funktion deklariert, w�hrend der die Sanduhr angezeigt werden soll. Beim Verlassen der Funktion kommt die Klassenvariable aus der Lifetime, der Destruktor wird gerufen, und der vorherige Cursor ist wieder da. Sinn der �bung: Man kann's nicht mehr vergessen...)

 

Nun wird der Destructor nicht wie bei C++ dann gerufen, wenn die Klasse aus der Lifetime ger�t, sondern irgendwann, wenns dem Framwork einf�llt...

 

Kann ich das irgendwie deklarieren?

 

Danke, Gr��e

 Stephan

Antwort per Email an