Ho una classe con membri statici estesi, alcuni dei quali mantengono riferimenti a oggetti gestiti e non gestiti.Come e quando vengono eliminati i membri statici C#?
Ad esempio, il costruttore statico viene chiamato non appena viene fatto riferimento al tipo, il che fa sì che la mia classe ruoti su un bloccoQueue di attività. Questo succede quando viene chiamato uno dei metodi statici, per esempio.
Ho implementato IDisposable, che mi dà i metodi per gestire lo smaltimento su qualsiasi oggetto di istanza che ho creato. Tuttavia, questi metodi non vengono mai chiamati se il consumatore non crea oggetti di istanza dalla mia classe.
Come e dove inserire il codice per disporre dei riferimenti gestiti dalla parte statica della mia classe? Ho sempre pensato che lo smaltimento delle risorse a riferimenti statici si verificava quando veniva rilasciato l'ultimo oggetto istanza; questa è la prima volta che ho creato una classe in cui nessuna istanza potrebbe mai essere creata.
articoli statiche sono disponibili per l'intera esecuzione dell'applicazione. Non si creano oggetti statici usando la NUOVA parola chiave, quindi questo significa che non si hanno più istanze di nulla, perché in realtà non si istanzia nulla. Riguardo agli oggetti gestiti, non preoccuparti di loro, il GC si prenderà cura di loro. Le risorse non gestite tentano di utilizzarle in una classe non statica oppure verranno conservate fino alla chiusura dell'applicazione. Gli articoli statici non supportano lo smaltimento. – alexandrudicu
Grazie. Sembra che ho bisogno di riconsiderare il mio design qui. – Joe