Pessoal, estou precisando de ajuda/exemplo de uma chamada de método de forma assíncrona em um controller. Minha situação é: "No ato da confirmação e pagamento na loja virtual, quero chamar o serviço de autorização em outra task e essa, quando concluída, encaminhará um email para o cliente". 

Grato pela colaboração

Exibições: 222

Respostas a este tópico

Isso parece um cenário síncrono pois a função de email só vai ser disparada apos a conclusão da função de autorização, correto?

Correto gustavo, porém a controller não deve ficar "esperando" o processamento dessa atividade e retornar para o usuário uma View informando que a autorização está em andamento e que você irá receber um email com o resultado da operação.

tenta :
System.Threading.Tasks.Parallel.Invoke(
() => Objeto.Metodo(),
() =>  Objeto2.Metodo(value, value1)
);

ou:

  System.Threading.Tasks.Task.Factory.StartNew(objeto.MetodoComRetorno);

voce pode usar o pool de aplicação.

http://msdn.microsoft.com/pt-br/library/h4732ks0.aspx

Obrigado pela ajuda. Vou testar a sua opção Gustavo e ler sobre o que você me indicou Clayton. Antecipadamente agradeço a atenção.

Vale prestar atenção para que se acontecer um erro no processo, como você avisará o cliente?

Vamos supor que o servidor não esteja enviando e-mails, e agora?

Acho a idéia boa, mas é perigosa.

cuidado ao trabalhar com Thread em pool já vi caso de exception não tratada para o pool e deixa a aplicação fora do ar

RSS

© 2020   Criado por Ramon Durães.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço