spass2000 hat folgendes geschrieben: |
[...]obwohl ich hier ja nicht mit unmanged Code arbeite |
Wie wird denn das Event ausgelöst? Wird es "von außen" ausgelöst, muss ja unmanaged Code im Spiel sein.
Zitat: |
und ich ja eine Referenz auf das Event halte. |
Falsch. Du hälst keine Referenz auf das Event, das Event hält eine Referenz auf deinen Eventhandler. Somit ist es vollkommen legal, wenn der GC das Objekt entsorgt.
Zitat: |
Leider ohne erfolgt. |
Dann hast du etwas falsch gemacht
. Wie gesagt, ein Objekt ohne Referenz wird gekillt, und Events sind keine Referenzen auf das Objekt. Gerade bei Timern kann man damit herrlich auf die Schnauze fallen, wenn man den Aufruf von Dispose vergisst.
Zitat: |
Was hält ihr von der Idee jedes Object, dass ein Event produziert mit KeepAlive abzusichern? |
Wenn es wirklich keine Referenz auf das Objekt gibt (ein richtig eingesetztes IDisposable-Objekt hat immer eine Referenz!), ist das die einzige Möglichkeit. du könntest zwar eine Dummy-Methode im Objekt implementieren, aber das läuft aufs gleiche hinaus.