Frage

Ich verwende derzeit einen statischen Delegierten in einer Wrapper -Klasse für eine C -DLL, um zu vermeiden, dass der Delegierte, der auf eine unsichere Funktion hinweist, gräbelt wird.
Dies funktionierte gut, bis ich jetzt die Anforderung habe, mehrere Instanzen der Klasse zu unterstützen. Eine Problemumgehung könnte darin bestehen, eine Liste der statischen Delegierten zu führen, aber ich möchte eine einfachere Lösung finden.

War es hilfreich?

Lösung

Um zu verhindern, dass ein Objekt gesammelt wird, müssen Sie einen Hinweis darauf beibehalten.

Statische Mitglieder in statischen Klassen leben für die Anwendungslebensdauer.

Beispielsweise können Sie je nach Klassengestaltung und Projektdesign unterschiedliche Ansätze verfolgen. Die Aufrechterhaltung einer statischen Liste ist möglicherweise keine schlechte Idee.

Meine einzige Frage ist, wie Sie feststellen können, dass der Delegierte gesammelt wird. Denn wenn Sie darauf zugreifen können, müssen Sie eine Referenz davon beibehalten haben. In diesem Fall muss es im Gedächtnis geblieben sein.

Andere Tipps

Ich denke, Sie haben einen Fehler gemacht: Statische Variablen leben im gesamten Lebenszyklus der Anwendung, sie werden niemals GCed sein, wenn die App ausgeführt wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top