private void Processar(ThreadItem item)
{
if (String.IsNullOrEmpty(Thread.CurrentThread.Name))
Thread.CurrentThread.Name = item.Empresa.ToString();
try
{
//avisa que vai iniciar
if (OnStarted != null) OnStarted(item);
//avisa que vai finalizar
if (OnEnded != null) OnEnded(item);
}
catch (Exception ex)
{
Auxiliar.WriteLog("Ocorreu um erro na execução da thread que está sendo executada.\r\nThreadControl.cs (1)\r\n" + ex.Message, true);
}
finally
{
try
{
//remove o item
//avisa que removeu o item
if (OnReleased != null) OnReleased(item);
}
catch (Exception ex)
{
Auxiliar.WriteLog("Ocorreu um erro ao tentar remover o item da Thread que está sendo executada.\r\nThreadControl.cs (2)\r\n" + ex.Message, true);
}
GC.Collect();
GC.WaitForPendingFinalizers();
}
}