Buenos días. estoy trabajando con una aplicación que tiene un comportamiento errático ligado a la utilización de Threads, lo cierto es que estoy haciendo consultas sobre una clase repositorio de datos llamada MODELO, que contiene colecciones, es decir la aplicación dentro de esa clase mete un conjunto de colecciones y luego las utiliza para su funcionamiento.
Y el problema es que para cargar esas colecciones utiliza Threads, lo que hace que un primer intento de acceder a alguna de estas colecciones genera una excepción, pero una segunda llamada a la consulta ya no provoca excepción, es decir que ha provocado que se finalicen todos los threads, de hecho yo he metido la llamada a la misma función en el catch y la aplicación funciona, y mi consulta es si hay alguna forma de reemplazar la segunda llamada del catch por algo que haga que se ejecuten los threads sin porvocar la excepción:
os pongo el códigp
Houses H = (from framework in modelo.Frameworks //clase modelo conteniendo colecciones de objetos
from House in framework.Houses
where House.Code == idHouse
select House).SingleOrDefault();
int duplicado = 0;
string retorno = string.Empty;
try
{
retorno = comprobar(tax, idHouse , ref duplicado); // primera llamada provoca una excepción
}
catch (Exception ex)
{
retorno = comprobar(tax, idHouse, ref duplicado); //segunda llamada a la función y ya funciona
}
if (duplicado > 0)
{
return retorno;
}
else
return null;
}
private static string comprobar(Houses tax, string idHouse, ref int duplicado)
{
var flats = tax.Flats.ToList();
var duplicated = flats.GroupBy(c => c).Where(g => g.Count() > 1).Select(g => g.Key).ToList();
duplicado = duplicated.Count > 0 ? 1 : 0;
string retorno = "House: " + idHouse + " Duplicated flat: ";
return retorno;
}
A ver si me podeis decir algo
un saludo