le futur de vb et l’asynchronisme [lan101] 08/02 14h30

20

Upload: dillian

Post on 12-Jan-2016

25 views

Category:

Documents


5 download

DESCRIPTION

Le futur de VB et l’asynchronisme [LAN101] 08/02 14h30. Patrice Lamarche GPI http://patricelamarche.net http://www.twitter.com/PatriceVB http://www.facebook.com/patrice.lamarche. Rappels Nouveautés VB10. Co-Evolution ! Continuation de ligne implicite Statements lambdas - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Le futur de VB et l’asynchronisme  [LAN101] 08/02 14h30
Page 2: Le futur de VB et l’asynchronisme  [LAN101] 08/02 14h30

2

Le futur de VB et l’asynchronisme [LAN101]08/02 14h30Patrice LamarcheGPIhttp://patricelamarche.nethttp://www.twitter.com/PatriceVBhttp://www.facebook.com/patrice.lamarche

Page 3: Le futur de VB et l’asynchronisme  [LAN101] 08/02 14h30

3

Rappels Nouveautés VB10

Co-Evolution !Continuation de ligne impliciteStatements lambdasPropriétés auto-implémentéesInitialisation de collectionsVariance des types génériquesRuntime purity (SP1)

Page 4: Le futur de VB et l’asynchronisme  [LAN101] 08/02 14h30

4

L’asynchronisme

• 2 types de traitements :

• Consommation CPU

• Consommation I/O

Page 5: Le futur de VB et l’asynchronisme  [LAN101] 08/02 14h30

5

Les opérations synchrones I/O

Windows I/O Dispatcher

Driver NTFS

Queue d’IRPs

.net

Win32 User Mode

Windows Kernel Mode

HardwareLe Thread

est suspendu

Page 6: Le futur de VB et l’asynchronisme  [LAN101] 08/02 14h30

6

Inconvénients

• Scénario : Application Web, chaque client créé une requête en db

• Thread bloqué pour un temps indéfini• Si nouvelle requête durant le blocage

• ThreadPool va créer un nouveau thread pour la requête, thread qui va se bloquer

• => Beaucoup d’allocations• Quand les résultats arrivent, si beaucoup de

threads, CPU overbooké, => Switches de contexte

Page 7: Le futur de VB et l’asynchronisme  [LAN101] 08/02 14h30

7

L’asynchronisme

FileStream.Read()

Que se passe-t-il en cas de non réponse d’un

fichier partagé présent sur un autre serveur ?

Toujours préférer les versions asynchrones

(ex : Silverlight)

Page 8: Le futur de VB et l’asynchronisme  [LAN101] 08/02 14h30

8

Les opérations asynchrones I/O

Windows I/O Dispatcher

.net

Win32 User Mode

Windows Kernel Mode

Hardware Driver NTFS

Queue d’IRPs

ThreadPoolExtraction des

IRP

Le Thread n’est pas suspendu

Page 9: Le futur de VB et l’asynchronisme  [LAN101] 08/02 14h30

9

Avantages

• Potentiellement un seul thread du threadpool peut gérer toutes les requêtes

• Peu d’allocation de ressources• Allocation de threads uniquement si les résultats

arrivent plus vite qu’ils ne sont traités.• => Création d’un thread par CPU• => Pas de switch de context

Page 10: Le futur de VB et l’asynchronisme  [LAN101] 08/02 14h30

10

Pattern APM

• Asynchronous Programming Model

Appel méthode

BeginRead

Mise en queue de la requête au Windows Device Driver

BeginRead retourne

l'IAsyncResult (comme un reçu de la demande)

Lorsque l'opération est terminée, un

thread du ThreadPool appelle le callback

Page 11: Le futur de VB et l’asynchronisme  [LAN101] 08/02 14h30

11

Pattern EAP

• Event based Asynchronous Pattern• Créé par l’équipe Windows Forms• Avantages

• Support de l’annulation et de la progression• Inconvénients

• Peu utilisé• APM très majoritairement utilisé dans le fx.net• 17 classes seulement implémentent EAP

• Principale utilisation : BackgroundWorker

Page 12: Le futur de VB et l’asynchronisme  [LAN101] 08/02 14h30

12

DémoUtilisation Pattern APM/EAP

Page 13: Le futur de VB et l’asynchronisme  [LAN101] 08/02 14h30

13

Asynchronisme VB vNext

• Visual Studio Async CTP• http://bit.ly/VSAsyncCTP

• Nouvelles fonctionnalités• Asynchronisme• Itérateurs (Enfin !)

• Se base sur la TPL et sur la classe Task

Page 14: Le futur de VB et l’asynchronisme  [LAN101] 08/02 14h30

14

VB Async CTP

• 2 nouveaux mots-clés Async et Await

• Async est un suffixe de méthode qui identifie une méthode asynchrone

• Opérateur Await suspend l’exécution et permet la reprise de l’exécution du code appelant

Page 15: Le futur de VB et l’asynchronisme  [LAN101] 08/02 14h30

15

Nouveau pattern basé sur les Task• Task based asynchronous pattern (TAP)

• Les méthodes Async renvoie une Task

• Une tâche représente un travail à effectuer• Ne signifie pas forcément création de

Thread !

Page 16: Le futur de VB et l’asynchronisme  [LAN101] 08/02 14h30

16

DémoVB Async

Page 17: Le futur de VB et l’asynchronisme  [LAN101] 08/02 14h30

17

Conclusion

• Développement asynchrone très simplifié • Async et Await

• Utilisation de la Task Parallel Library

• Accessible pour tout type d’applications• Même Silverlight

Page 18: Le futur de VB et l’asynchronisme  [LAN101] 08/02 14h30

18

Questions ?

Page 19: Le futur de VB et l’asynchronisme  [LAN101] 08/02 14h30
Page 20: Le futur de VB et l’asynchronisme  [LAN101] 08/02 14h30

20

MSDN et TechNet : l’essentiel des ressources techniques à portée de clic

http://technet.com http://msdn.com

Portail administration et infrastructure pour informaticiens

Portail de ressources technique pour développeurs