Domanda

Attualmente sto usando un delegato statica in una classe wrapper per una dll C per evitare che il delegato, che punti a una funzione non sicuro, ottiene garbaged raccolti.
Questo è stato lavorando bene fino ad ora ho l'esigenza di supportare più istanze della classe. Una soluzione potrebbe essere quella di tenere un elenco dei delegati statiche, ma vorrei trovare una soluzione più semplice.

È stato utile?

Soluzione

Per mantenere un oggetto di essere raccolte, è necessario mantenere un riferimento ad esso.

I membri statici in classi statiche vivono per tutta la vita dell'applicazione.

Per esempio i membri della classe, a seconda del design di classe e il design del progetto, si può prendere approcci diversi. Il mantenimento di un elenco statico non può essere una cattiva idea.

La mia unica domanda è come stai in grado di capire che il delegato vengono raccolti. Perché, se si è in grado di accedervi, allora è necessario avere mantenuto un riferimento di esso. In questo caso, si deve avere alloggiato in memoria.

Altri suggerimenti

Credo che hai fatto un errore: le variabili statiche vite in tutto il ciclo di vita dell'applicazione, non saranno mai GCed quando l'applicazione è in esecuzione

.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top