Ho scritto del codice che carica un documento XML utilizzando un oggetto XmlDocument
in modo da contare i suoi nodi. Ecco il metodo:C#: il metodo close di Xml.Load (file)
XmlDocument xml = new XmlDocument();
xml.Load(textBox1.Text);
XmlNodeList nodes = xml.SelectNodes("//File");
foreach (XmlNode node in nodes)
{
number_of_childs++;
}
Il problema che sto affrontando è, durante l'importazione di un file di grandi dimensioni, ci vuole come 700MB di RAM. Se poi provo a fare qualche operazione sul file, o addirittura a leggere da esso per visualizzare i suoi dati in un ListView
, l'applicazione prende come 2 GB di RAM. Quindi, mi stavo chiedendo, c'è un metodo che chiude lo XmlDocument
e libera la sua memoria, rilasciando la RAM. È come se dimenticasse di rimuovere il suo contenuto dalla memoria.
Grazie per questa informazione, ma non ha funzionato, ho applicato il tuo pezzo di codice ma riserva ancora la stessa quantità di memoria. –
@ R.Vector vedi la mia modifica. –
Sì, ha funzionato, ma il secondo passaggio dell'app è quello di leggere ogni nodo e digitarlo in un listview, quindi il problema esiste ancora, ma cosa succede se riesco a leggere ogni nodo di xml e liberarlo dalla memoria quando era memorizzato con successo da qualche parte <<< in questo modo sarebbe meglio per la gestione della memoria. –