Globalcode – Open4education
Programação assíncrona com C# 5
e .NET Framework 4.5
Rogério Moraes de Carvalho
VITA Informáti...
Globalcode – Open4education
Agenda
Assincronia no .NET 4.5
Task-based Asynchronous Pattern (TAP)
async e await
Demo 1 - TA...
Globalcode – Open4education
Assincronia no .NET 4.5
Padrões assíncronos no .NET Framework 4.5
Asynchronous Programming Mod...
Globalcode – Open4education
Task-based Asynchronous
Pattern (TAP)
Padrão baseado nos tipos Task e Task<TResult>
Representa...
Globalcode – Open4education
Task-based Asynchronous
Pattern (TAP)
Assinatura da versão síncrona do método
NomeMetodo(...)
...
Globalcode – Open4education
async e await
Modificador async
Indica que um método, uma expressão lambda ou um
método anônim...
Globalcode – Open4education
Demo 1
TAP, async e await
Class Library
Namespace Tdc2013.TrilhaDotNet.Matematica
Classe estát...
Globalcode – Open4education
Cancelamento (opcional)
Estrutura CancellationToken *
Propaga a notificação que uma operação d...
Globalcode – Open4education
Demo 2
Cancelamento
Class Library
Novo método assíncrono:
FatorialAsync(ulong, CancellationTok...
Globalcode – Open4education
Progresso (opcional)
Interface System.IProgress<in T>
Define um fornecedor para atualizações d...
Globalcode – Open4education
Demo 3
Progresso
Class Library
Novo método assíncrono:
FatorialAsync(ulong, CancellationToken,...
Globalcode – Open4education
Documentação
Task-based Asynchronous Pattern (TAP)
http://msdn.microsoft.com/en-us/library/hh8...
Upcoming SlideShare
Loading in …5
×

The Developer's Conference (TDC) 2013 - São Paulo: Programação assíncrona com C# 5 e .NET Framework 4.5

1,798 views

Published on

Assincronia no .NET 4.5, Task-based Asynchronous Pattern (TAP), async e await, Cancelamento com CancellationTokenSource e CancellationToken e progresso com a interface System.IProgress de um tipo T genérico e a classe System.Progress de um tipo genérico T.

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

No Downloads
Views
Total views
1,798
On SlideShare
0
From Embeds
0
Number of Embeds
1,203
Actions
Shares
0
Downloads
4
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

The Developer's Conference (TDC) 2013 - São Paulo: Programação assíncrona com C# 5 e .NET Framework 4.5

  1. 1. Globalcode – Open4education Programação assíncrona com C# 5 e .NET Framework 4.5 Rogério Moraes de Carvalho VITA Informática @rogeriom rogeriomc.wordpress.com
  2. 2. Globalcode – Open4education Agenda Assincronia no .NET 4.5 Task-based Asynchronous Pattern (TAP) async e await Demo 1 - TAP, async e await Cancelamento (opcional) Demo 2 - Cancelamento Progresso (opcional) Demo 3 - Progresso
  3. 3. Globalcode – Open4education Assincronia no .NET 4.5 Padrões assíncronos no .NET Framework 4.5 Asynchronous Programming Model (APM) Método BeginNomeMetodo Método EndNomeMetodo .NET1.0 Event-based Asynchronous Pattern (EAP) Método NomeMetodoAsync Evento NomeMetodoCompleted Opcionalmente um método NomeMetodoAsyncCancel Opcionalmente um evento NomeMetodoProgressChanged .NET2.0 Task-based Asynchronous Pattern (TAP) * Método NomeMetodoAsync ou NomeMetodoTaskAsync * Abordagem recomendada atualmente para programação assíncrona .NET4.0
  4. 4. Globalcode – Open4education 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.WhelAll(params Task[] tasks)
  5. 5. Globalcode – Open4education 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
  6. 6. Globalcode – Open4education 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
  7. 7. Globalcode – Open4education Demo 1 TAP, async e await Class Library Namespace Tdc2013.TrilhaDotNet.Matematica Classe estática AnaliseCombinatoria Método síncrono: Fatorial(ulong) Método assíncrono: FatorialAsync(ulong) Aplicação WPF (Windows Presentation Foundation) Consumo do método síncrono versus Consumo do método assíncrono
  8. 8. Globalcode – Open4education 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
  9. 9. Globalcode – Open4education Demo 2 Cancelamento Class Library Novo método assíncrono: FatorialAsync(ulong, CancellationToken) Suporte a cancelamento na aplicação WPF
  10. 10. Globalcode – Open4education 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
  11. 11. Globalcode – Open4education Demo 3 Progresso Class Library Novo método assíncrono: FatorialAsync(ulong, CancellationToken, IProgress<ulong>) Suporte a progresso na aplicação WPF
  12. 12. Globalcode – Open4education 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

×