Hi,
ich bastel im Moment eine Klasse um das Mausrad subclassen zu können. Mein Code funktioniert auch im Allgemeinen ganz gut, mein Event wird ausgelöst und die Eventhandler Werte sind richtig. Leider habe ich die Rechnung ohne die Garbage Collection gemacht. Ich benötige zwei Delegates und dem WindowHook eine gültige Funktionsadresse geben zu können, da MS leider AdressOf seit VB6 rausgeschmissen hat. Nach einer mehr oder weniger zufälligen Zeit entfernt die Garbage Collection eines der Delegates, Windows überprüft die Rücksprungadresse bevor sie die Funktion auslöst, findet sie nicht und schießt mein Programm wegen eines invaliden Subclassinghandlers ab. Die einzige Methode die bis dato geholfen hat, ist eine Instanz der Klasse immer nur für wenige Sekunden zu benutzen und dann zu Reinstanziren. Das ist aber 1. langsam und 2. habe ich dann immer kurze Löcher in der Eventabfrage. Folglich scheidet diese Lösung aus. Also kurz und bündig:
Wie kann ich ohne permanente neu-Instanzierung die Garbage Collection von ihrem Job abhalten?
Vielen Dank für eure Hilfe.
mfg Verata
PS: Ich code in VB was aber auf Grund der Tatsache, das es sich um NET handelt keine Rolle spielen dürfte.
ich bastel im Moment eine Klasse um das Mausrad subclassen zu können. Mein Code funktioniert auch im Allgemeinen ganz gut, mein Event wird ausgelöst und die Eventhandler Werte sind richtig. Leider habe ich die Rechnung ohne die Garbage Collection gemacht. Ich benötige zwei Delegates und dem WindowHook eine gültige Funktionsadresse geben zu können, da MS leider AdressOf seit VB6 rausgeschmissen hat. Nach einer mehr oder weniger zufälligen Zeit entfernt die Garbage Collection eines der Delegates, Windows überprüft die Rücksprungadresse bevor sie die Funktion auslöst, findet sie nicht und schießt mein Programm wegen eines invaliden Subclassinghandlers ab. Die einzige Methode die bis dato geholfen hat, ist eine Instanz der Klasse immer nur für wenige Sekunden zu benutzen und dann zu Reinstanziren. Das ist aber 1. langsam und 2. habe ich dann immer kurze Löcher in der Eventabfrage. Folglich scheidet diese Lösung aus. Also kurz und bündig:
Wie kann ich ohne permanente neu-Instanzierung die Garbage Collection von ihrem Job abhalten?
Vielen Dank für eure Hilfe.
mfg Verata
PS: Ich code in VB was aber auf Grund der Tatsache, das es sich um NET handelt keine Rolle spielen dürfte.