I did a process in c # which is running all the time, the problem is using a lot of CPU percentage, does anyone know how to reduce that percentage?
do
{
try
{
LogClasifica("Configurando Directorios...");
lector.obtenFiles(fields);
}
catch(Exception e)
{
throw new Exception(e.Message);
}
}
while (true);
public void obtenFiles(string[] field)
{
try
{
List<string> dirsRaiz = new List<string>(Directory.EnumerateDirectories(field[1]));
foreach (var dir in dirsRaiz)
{
if (dir.Contains(field[21]) || dir.Contains(field[22]) || dir.Contains(field[23]))
{
String dirPath2 = dir;
List<string> dirs2 = new List<string>(Directory.EnumerateDirectories(dirPath2));
foreach (string dir2 in dirs2)
{
if (dir2.Contains("AUX"))
{
//LogClasifica(dir2);
int subString2 = Convert.ToInt16(field[45]);
string string3 = dir2.Substring(subString2);
n = Convert.ToInt16(string3);
if (n >= Convert.ToInt16(field[37]) && n <= Convert.ToInt16(field[38])) //CONDICION PARA USESAP
{
if (dir.Contains(field[21]))
{
if (!Directory.Exists(field[10]))
{
Directory.CreateDirectory(field[10]);
}
CopyDirectoryContent2(dir2.Substring(0, subString2) + n, field[10], true);
}
if (dir.Contains(field[22]) || dir.Contains(field[23]))
{
if (!Directory.Exists(field[11]))
{
Directory.CreateDirectory(field[11]);
}
CopyDirectoryContent2(dir2.Substring(0, subString2) + n, field[11], true);
}
}
}
}
}
}
}
catch (Exception err)
{
LogClasifica("Error:" + err.Message + err.StackTrace);
}
}