public void Dispose() { if (DisposeExecutado) { return; } DisposeExecutado = true; TaferasEmExecucao?.Clear(); Relatorio?.Clear(); Log($"Processo concluído"); }
private Dn32Tarefa AdicionarTarefa(Func <object, Task> acao, string descricao, TimeSpan?timeout) { var relatorioDaTarefa = new RelatorioDeExecucao { Descricao = descricao }; Relatorio.Add(relatorioDaTarefa); var tarefa = new Dn32Tarefa(acao, descricao, timeout) { TarefaIniciadaCallBack = (Dn32Tarefa tarefaLocal) => { relatorioDaTarefa.Inicio = DateTime.Now; Log($"Tarefa iniciada: {descricao}"); }, TarefaFinalizadaCallBack = (Dn32Tarefa tarefaLocal) => { relatorioDaTarefa.Fim = DateTime.Now; relatorioDaTarefa.Sucesso = true; TaferasEmExecucao.TryRemove(tarefaLocal.Id, out _); Log($"Tarefa finalizada com sucesso: {descricao}"); }, TarefaErroCallBack = (Dn32Tarefa tarefaLocal, Exception ex) => { relatorioDaTarefa.Fim = DateTime.Now; relatorioDaTarefa.Sucesso = false; relatorioDaTarefa.Erro = ex.Message; TaferasEmExecucao.TryRemove(tarefaLocal.Id, out _); Log($"Tarefa finalizada com erro: {descricao} - {ex.Message}"); } }; TaferasEmExecucao.TryAdd(tarefa.Id, tarefa); return(tarefa); }