1 / 20

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

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

dillian
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Le futur de VB et l’asynchronisme [LAN101]08/02 14h30 Patrice LamarcheGPI http://patricelamarche.net http://www.twitter.com/PatriceVB http://www.facebook.com/patrice.lamarche

  2. Rappels Nouveautés VB10 • Co-Evolution ! • Continuation de ligne implicite • Statementslambdas • Propriétés auto-implémentées • Initialisation de collections • Variance des types génériques • Runtimepurity (SP1)

  3. L’asynchronisme • 2 types de traitements : • Consommation CPU • Consommation I/O

  4. Les opérations synchrones I/O .net Win32 User Mode Windows Kernel Mode Windows I/O Dispatcher Driver NTFS Queue d’IRPs Hardware Le Thread est suspendu

  5. 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 

  6. 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)

  7. Les opérations asynchrones I/O .net Win32 User Mode ThreadPool Extraction des IRP Windows Kernel Mode Windows I/O Dispatcher Driver NTFS Queue d’IRPs Hardware Le Thread n’est pas suspendu

  8. 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

  9. Pattern APM • AsynchronousProgramming Model

  10. Pattern EAP • Event basedAsynchronous 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

  11. Démo Utilisation Pattern APM/EAP

  12. 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

  13. 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

  14. Nouveau pattern basé sur les Task • Taskbasedasynchronous 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 !

  15. Démo VB Async

  16. Conclusion • Développement asynchrone très simplifié • Async et Await • Utilisation de la TaskParallel Library • Accessible pour tout type d’applications • Même Silverlight

  17. Questions ?

  18. MSDN et TechNet: l’essentiel des ressources techniques à portée de clic • Portail administration et infrastructure pour informaticiens • Portail de ressources technique pour développeurs http://technet.com http://msdn.com

More Related