SESSÃO: DESENVOLVIMENTO

TRILHA: FERRAMENTAS DE DESENVOLVIMENTO & LINGUAGENS DE PROGRAMAÇÃO

MVP ShowCast 2013
Programação...
SESSÃO: DESENVOLVIMENTO

TRILHA: FERRAMENTAS DE DESENVOLVIMENTO & LINGUAGENS DE PROGRAMAÇÃO

Agenda
♦Padrões assíncronos n...
SESSÃO: DESENVOLVIMENTO

TRILHA: FERRAMENTAS DE DESENVOLVIMENTO & LINGUAGENS DE PROGRAMAÇÃO

.NET 1.0

Padrões assíncronos...
SESSÃO: DESENVOLVIMENTO

TRILHA: FERRAMENTAS DE DESENVOLVIMENTO & LINGUAGENS DE PROGRAMAÇÃO

Task-based Asynchronous Patte...
SESSÃO: DESENVOLVIMENTO

TRILHA: FERRAMENTAS DE DESENVOLVIMENTO & LINGUAGENS DE PROGRAMAÇÃO

Task-based Asynchronous Patte...
SESSÃO: DESENVOLVIMENTO

TRILHA: FERRAMENTAS DE DESENVOLVIMENTO & LINGUAGENS DE PROGRAMAÇÃO

async e await
♦Modificador as...
SESSÃO: DESENVOLVIMENTO

TRILHA: FERRAMENTAS DE DESENVOLVIMENTO & LINGUAGENS DE PROGRAMAÇÃO

Demonstração 1
TAP, async e a...
SESSÃO: DESENVOLVIMENTO

TRILHA: FERRAMENTAS DE DESENVOLVIMENTO & LINGUAGENS DE PROGRAMAÇÃO

Cancelamento (opcional)
♦Estr...
SESSÃO: DESENVOLVIMENTO

TRILHA: FERRAMENTAS DE DESENVOLVIMENTO & LINGUAGENS DE PROGRAMAÇÃO

Progresso (opcional)
♦Interfa...
SESSÃO: DESENVOLVIMENTO

TRILHA: FERRAMENTAS DE DESENVOLVIMENTO & LINGUAGENS DE PROGRAMAÇÃO

Demonstração 2
Cancelamento e...
SESSÃO: DESENVOLVIMENTO

TRILHA: FERRAMENTAS DE DESENVOLVIMENTO & LINGUAGENS DE PROGRAMAÇÃO

Documentação
♦Task-based Asyn...
SESSÃO: DESENVOLVIMENTO

TRILHA: FERRAMENTAS DE DESENVOLVIMENTO & LINGUAGENS DE PROGRAMAÇÃO

Perguntas & Respostas

Rogéri...
Upcoming SlideShare
Loading in …5
×

Programação assíncrona com C# 5 no Visual Studio 2013 [MVP ShowCast 2013 - DEV - Ferramentas de desenvolvimento & Linguagens de programação]

690 views

Published on

Palestra: Programação assíncrona com C# 5 no Visual Studio 2013
Palestrante: Rogério Moraes de Carvalho
Realização: 03/12/2013 17h
Trilha: Ferramentas de desenvolvimento & Linguagens de programação
Sessão: Desenvolvimento
Evento: MVP ShowCast 2013
Site: http://mvpshowcast.azurewebsites.net

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
690
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Programação assíncrona com C# 5 no Visual Studio 2013 [MVP ShowCast 2013 - DEV - Ferramentas de desenvolvimento & Linguagens de programação]

  1. 1. SESSÃO: DESENVOLVIMENTO TRILHA: FERRAMENTAS DE DESENVOLVIMENTO & LINGUAGENS DE PROGRAMAÇÃO MVP ShowCast 2013 Programação assíncrona com C# 5 no Visual Studio 2013 Rogério Moraes de Carvalho Visual C# Diretor de Tecnologia – VITA Informática @rogeriomc rogeriomc.wordpress.com © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
  2. 2. SESSÃO: DESENVOLVIMENTO TRILHA: FERRAMENTAS DE DESENVOLVIMENTO & LINGUAGENS DE PROGRAMAÇÃO Agenda ♦Padrões assíncronos no .NET Framework 4.5.1 ♦Task-based Asynchronous Pattern (TAP) ♦async e await ♦Demonstração 1: TAP, async e await ♦Cancelamento (opcional) ♦Progresso (opcional) ♦Demonstração 2: Cancelamento e progresso © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
  3. 3. SESSÃO: DESENVOLVIMENTO TRILHA: FERRAMENTAS DE DESENVOLVIMENTO & LINGUAGENS DE PROGRAMAÇÃO .NET 1.0 Padrões assíncronos no .NET Framework 4.5.1 Asynchronous Programming Model (APM) Método BeginNomeMetodo Método EndNomeMetodo .NET 4.0 .NET 2.0 Event-based Asynchronous Pattern (EAP) Método NomeMetodoAsync Evento NomeMetodoCompleted Opcionalmente um método NomeMetodoAsyncCancel Opcionalmente um evento NomeMetodoProgressChanged Task-based Asynchronous Pattern (TAP) * Método NomeMetodoAsync ou NomeMetodoTaskAsync * Abordagem atualmente recomendada pela Microsoft para programação assíncrona © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
  4. 4. SESSÃO: DESENVOLVIMENTO TRILHA: FERRAMENTAS DE DESENVOLVIMENTO & LINGUAGENS DE PROGRAMAÇÃO Task-based Asynchronous Pattern (TAP) ♦Padrão baseado nos tipos Task e Task<TResult> ♦ Representam operações assíncronas arbitrarias ♦ Fornecem um ciclo de vida para operações assíncronas ♦ Definidos no namespace System.Threading.Tasks ♦Task helpers ♦ Execução em segundo plano ♦ Task.Run(() => {/* código de segundo plano */}) ♦ Composição paralela (combinadores) ♦ Task.WhenAny(params Task[] tasks) ♦ Task.WhenAll(params Task[] tasks) © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
  5. 5. SESSÃO: DESENVOLVIMENTO TRILHA: FERRAMENTAS DE DESENVOLVIMENTO & LINGUAGENS DE PROGRAMAÇÃO Task-based Asynchronous Pattern (TAP) ♦Assinatura da versão síncrona do método ♦ NomeMetodo(...) ♦Assinaturas das versões assíncronas do método ♦ NomeMetodoAsync(...) ♦ NomeMetodoAsync(..., CancellationToken c) ♦ NomeMetodoAsync(..., IProgress<T> p) ♦ NomeMetodoAsync(..., CancellationToken c, IProgress<T> p) ♦Tipos de retorno das versões assíncronas ♦ void NomeMetodo(...)  Task NomeMetodoAsync(...) * ♦ T NomeMetodo(...)  Task<T> NomeMetodoAsync(...) * Neste caso, a versão assíncrona também pode retornar void © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
  6. 6. SESSÃO: DESENVOLVIMENTO TRILHA: FERRAMENTAS DE DESENVOLVIMENTO & LINGUAGENS DE PROGRAMAÇÃO async e await ♦Modificador async ♦ Indica que um método, uma expressão lambda ou um método anônimo é assíncrono ♦Operador await ♦ Suspende uma tarefa (Task ou Task<T>) até que ela seja concluída © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
  7. 7. SESSÃO: DESENVOLVIMENTO TRILHA: FERRAMENTAS DE DESENVOLVIMENTO & LINGUAGENS DE PROGRAMAÇÃO Demonstração 1 TAP, async e await ♦Class Library ♦ Namespace MvpShowCast.Dev.LinguagensProgramacao.Matematica ♦ Classe estática AnaliseCombinatoria ♦ Método estático síncrono: Fatorial(ulong) ♦ Método estático assíncrono: FatorialAsync(ulong) ♦Aplicação WPF (Windows Presentation Foundation) ♦ Consumo do método síncrono versus ♦ Consumo do método assíncrono © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
  8. 8. SESSÃO: DESENVOLVIMENTO TRILHA: FERRAMENTAS DE DESENVOLVIMENTO & LINGUAGENS DE PROGRAMAÇÃO Cancelamento (opcional) ♦Estrutura CancellationToken * ♦ Propaga a notificação que uma operação deve ser cancelada ♦Classe CancellationTokenSource * ♦ Sinaliza para um CancellationToken que ele deve ser cancelado * Ambos os tipos estão no namespace System.Threading © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
  9. 9. SESSÃO: DESENVOLVIMENTO TRILHA: FERRAMENTAS DE DESENVOLVIMENTO & LINGUAGENS DE PROGRAMAÇÃO Progresso (opcional) ♦Interface System.IProgress<in T> ♦ Define um fornecedor para atualizações de progresso ♦ Se for null, o progresso não deve ser reportado ♦ Um único método: void Report(T value) ♦Classe System.Progress<T> ♦ Implementa a interface System.IProgress<T> ♦ Permite, opcionalmente, invocar um callback para cada valor de progresso ♦ O evento ProgressChanged permite notificar progressos © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
  10. 10. SESSÃO: DESENVOLVIMENTO TRILHA: FERRAMENTAS DE DESENVOLVIMENTO & LINGUAGENS DE PROGRAMAÇÃO Demonstração 2 Cancelamento e progresso ♦Class Library ♦ Novo método assíncrono: FatorialAsync(ulong, CancellationToken, IProgress<ulong>) ♦Suporte a cancelamento e progresso na aplicação WPF © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
  11. 11. SESSÃO: DESENVOLVIMENTO TRILHA: FERRAMENTAS DE DESENVOLVIMENTO & LINGUAGENS DE PROGRAMAÇÃO Documentação ♦Task-based Asynchronous Pattern (TAP) ♦ http://msdn.microsoft.com/en-us/library/hh873175.aspx ♦Implementing the Task-based Asynchronous Pattern ♦ http://msdn.microsoft.com/en-us/library/hh873177.aspx ♦Consuming the Task-based Asynchronous Pattern ♦ http://msdn.microsoft.com/en-us/library/hh873173.aspx ♦Asynchronous Programming with Async and Await (C# and Visual Basic) ♦ http://msdn.microsoft.com/en-us/library/vstudio/hh191443.aspx © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
  12. 12. SESSÃO: DESENVOLVIMENTO TRILHA: FERRAMENTAS DE DESENVOLVIMENTO & LINGUAGENS DE PROGRAMAÇÃO Perguntas & Respostas Rogério Moraes de Carvalho Visual C# Diretor de Tecnologia – VITA Informática @rogeriomc rogeriom.wordpress.com © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.

×