public void Executar()
        {
            Console.WriteLine("Inicio do Processo");

            var relogio = new Stopwatch();

            relogio.Start();

            var service = new AssociatePatientsToTreatmentsService();

            var servicoObterTratamentos = new AssociateTreatments(service.Associate);

            totalDePacientesProcessados = 0;

            Processar(servicoObterTratamentos);

            Finalizar(relogio);
        }
        private void Processar(AssociateTreatments servicoObterTratamentos)
        {
            totalDePacientesExistentes = patients.Count;

            while (totalDePacientesProcessados < totalDePacientesExistentes)
            {
                SegurarProcessador();

                // TODO: ObterPacientes -- Paginando
                var pacientes = patients.Skip(totalDePacientesProcessados).Take(fatia).ToList();

                servicoObterTratamentos.BeginInvoke(pacientes, MetodoQueSeraExecutadoAposOMetodoDoDelegate, servicoObterTratamentos);
                FatiarPacientes();
            }
        }