Questo sito utilizza cookie tecnici e di terze parti. Continuando la navigazione sul nostro sito accetti l'uso dei cookie. Per saperne di più leggi l'informativa sui cookie.   


limite dimensione di Dictionary
Ultimo messaggio: 27 feb 2018 00:26 di Sebastiano Floridia. 0 Risposte.
Stampa gradevole
Solo gli utenti registrati possono rispondere ad una discussione.
Avatar
Sebastiano Floridia
Messaggi: 579
Iscritto dal: 30 apr 2012 00:52
Utente
Utente

27 feb 2018 00:26

Ciao Ragazzi, sto scrivendo un cad in c# con tanti elementi asta.

La struttura dati è questa:

Un dictionary di  elementi asta.

public static Dictionary Aste = new Dictionary();

nelle sotto proprietà della singola asta ci sono delle sottomatrici di dati:

 public double[,,] ResAste= new double[200,11,8]; 
public double[,] ResAsteSLDx = new double[11, 8]; 
public double[,] ResAsteSLDy = new double[11, 8]; 
public double[,] ResAsteSLDz = new double[11, 8]; 
public double[,] ResAsteSLUx = new double[11, 8]; 
public double[,] ResAsteSLUy = new double[11, 8]; 
public double[,] ResAsteSLUz = new double[11, 8]; 
public double[,,] ResAsteCmb = new double[200,11, 8];  
public double[,,] DefAste = new double[200, 11, 6]; 

public double[,] DefAsteSLDx = new double[11, 8]; 
public double[,] DefAsteSLDy = new double[11, 8]; 
public double[,] DefAsteSLDz = new double[11, 8]; 
public double[,] DefAsteSLUx = new double[11, 8]; 
public double[,] DefAsteSLUy = new double[11, 8]; 
public double[,] DefAsteSLUz = new double[11, 8]; 
public double[,,] DefAsteCmb = new double[200, 11, 8];  

inserisco le aste con questo costrutto.
public Asta(string ini, string fin, Double lunghezza, Double lunghezzainflessione2, Double lunghezzainflessione3, short nodok, string layer, string sez, string Mat, string svinci, string svincj, string gruppo = "", int winkler = 0, double kwinkler = 0, int magrone = 0, float dxiTemp = 0, float dyiTemp = 0, float dziTemp = 0, float dxjTemp = 0, float dyjTemp = 0, float dzjTemp = 0)
        {

etc.....

 

funziona perfettamente fino a 1000 elementi.

superati circa 1050 elementi , al metodo add esce il messaggio:

{"Generata eccezione di tipo 'System.OutOfMemoryException'."} System.OutOfMemoryException


A questo punto mi chiedo se c'è un limite alle dimensioni del dictionary.

mi rendo conto che tutto le sotto matrici che contengono double sono eccessive, ma sono definite e devono essere popolate da dati che provengono da un calcolatore fortran e ne ricopio la struttura.

C'è un modo per ampliare lo spazio dedicato a questa famiglia di oggetti?

Grazie

Sebastiano Floridia

    Solo gli utenti registrati possono rispondere ad una discussione.