none
Qual a melhor forma de usar o GC e a WeakReference juntos? RRS feed

  • Pergunta

  • Qual a melhor forma de usar o GC e a WeakReference juntos ?  

    Normalmente quando crio muitas instancias dentro de um loop costumo utilizar a class WeakReference, e depois chamo o GC.Collect(). É uma boa pratica fazer uso desses recursos juntos? essa é a maneira correta ?  

     /**
             * <summary>
             *      Recebe uma classe com variaveis instanciadas e não nullas 
             *      e preenche os valores em variaveis com o mesmo nome no segundo argumento recebido
             * </summary>
             * <param name="comparar">
             *      Objeto que irá passar as informações contidas para outra classe 
             * </param>
             * <param name="comparacao">
             *      Objeto que irá receber os valores informados pela outra classe 
             * </param>
             * <returns>
             *      Retorna o objeto passado como argumento com as variaveis já instanciadas 
    * e com os valores definidos, * </returns> */ public T CompararPreencherPropriedade(Object comparar, T comparacao ) { PropertyInfo[] compararPropriedades = (comparar.GetType()).GetProperties(); PropertyInfo[] comparacaoPropriedades = (comparacao.GetType()).GetProperties(); WeakReference weak = null; foreach (PropertyInfo propriedade in compararPropriedades) { for (int i = 0; i < comparacaoPropriedades.Length; i++ ) { PropertyInfo prop = comparacaoPropriedades[i]; weak = new WeakReference(prop); if(propriedade.Name.Equals(prop.Name,StringComparison.InvariantCulture)){ prop.SetValue(comparacao,propriedade.GetValue(comparar,null),null); } } } GC.Collect(); return comparacao; }

    terça-feira, 4 de março de 2014 23:55