aver finito di ciclare sulle righe con un search cursor.
Questo articolo è una lettura fondamentale per gli sviluppatori che usano il geodatabase API: dimostra l'importanza di rilasciare gli oggetti COM (e specialmente i cursori) e di utilizzare un approccio diverso.
Molti sviluppatori .NET che hanno lavorato con il COM interop conosceranno già il metodo statico Marshal.ReleaseComObject, ma c'è anche una sezione dedicata ad una classe nell'ADF chiamata ComReleaser che è veramente utile quando si lavora con i cursori.
Ecco un esempio dell'uso del ComReleaser per assicurarsi che il cursore sia propriamente rilasciato:
using (ComReleaser comReleaser = new ComReleaser())
{
// Istanzia un cursore e gestisci il ciclo di vita con il ComReleaser.
IFeatureCursor featureCursor = featureClass.Search(null, true);
comReleaser.ManageLifetime(featureCursor);
// Cicla attraverso le features.
IFeature feature = null;
while ((feature = featureCursor.NextFeature()) != null)
{
// Fai qualcosa
}
}
Indipendentemente da come il codice lascia questo blocco using (se un valore è restituito, se viene gettata un'eccezione o esce) il
cursore comunque avrà il proprio reference count correttamente decrementato.
Vedi articolo
Nessun commento:
Posta un commento