Array
(
)

Threads, Delegate ou tasks

Pjava
   - 24 ago 2012

Tenho esse programa. Preciso colocar o método execute em uma Thread, task ou Delegate, ou seja,
esse método rodará em um serviço e será startado automaticamente em um servidor e terei muitas execuções
oncorrentes, logo isso deveria ser feito em um desses caras acima. Abaixo todo meu código até agora.

PesquisaAgenda pag = new PesquisaAgenda();
public Form1()
{
InitializeComponent();
}
Lista<Entity.Rotina> listaRotina = new Lista<Entity.Rotina>();
Lista<Entity.Tarefa> listaTarefa = new Lista<Entity.Tarefa>();
Lista<Entity.ExportacaoAgendamento> listaAgendamento = new Lista<Entity.ExportacaoAgendamento>();
Lista<Entity.ExportacaoAgendamento> listaTudo = new Lista<Entity.ExportacaoAgendamento>();
List<Int64> tarefa;
Int64 _execTarefa;
DateTime _diaHoraExcecucao = DateTime.Now;
t.Timer timer = new t.Timer();
private static int CompararTarefas(Entity.Tarefa tarefaDe, Entity.Tarefa tarefaPara)
{
return tarefaDe.OrdemExecucao.CompareTo(tarefaPara.OrdemExecucao);
}
private void BuscaTarefa()
{
if (listaTudo.Count == 0)
{
listaTudo = Sistema.Infrastructure.Repository.ExportacaoAgendamento.RetornarTodos();
}
listaRotina = Sistema.Infrastructure.Repository.Rotina.RetornarTodos();
dgvAgenda.DataSource = listaTudo.ToArray();
dgvRotina.DataSource = listaRotina.ToArray();
foreach (var item in listaRotina)
{
if (item.DataInicial < DateTime.Now)
{
listaRotina = Sistema.Infrastructure.Repository.Rotina.RetornarPorFiltro(new Finder.Rotina() { IdRotina = item.IdRotina });
foreach (var item_rotina in listaRotina)
{
execute(item_rotina.IdRotina);
}
}
}
}
private void execute(Int64 _rotina)
{
var lista = Sistema.Infrastructure.Repository.Tarefa.RetornarPorFiltro(new Finder.Tarefa() { IdRotina = _rotina }).ToList();
lista.Sort(CompararTarefas);
foreach (var item in lista)
{
string path = "";
path = item.Descricao;
System.Diagnostics.Process.Start(path);
}
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
BuscaTarefa();
}