You are on page 1of 20

Le futur de VB et

lasynchronisme
[LAN101]
08/02 14h30
Patrice Lamarche
GPI
http://patricelamarche.net
http://www.twitter.com/PatriceVB
http://www.facebook.com/patrice.lam
arche
2

Rappels Nouveauts
VB10

Co-Evolution !
Continuation de ligne implicite
Statements lambdas
Proprits auto-implmentes
Initialisation de collections
Variance des types gnriques
Runtime purity (SP1)

Lasynchronisme
2 types de traitements :

Consommation CPU

Consommation I/O

Les oprations synchrones


I/O
.net
Win32 User
Mode
Windows
Kernel
Mode
Hardware

Windows I/O Dispatcher

Driver NTFS
Queue dIRPs

Le
Thread
est
suspendu

Inconvnients
Scnario : Application Web, chaque client cr une
requte en db

Thread bloqu pour un temps indfini


Si nouvelle requte durant le blocage

ThreadPool va crer un nouveau thread pour la


requte, thread qui va se bloquer
=> Beaucoup dallocations
Quand les rsultats arrivent, si beaucoup de
threads, CPU overbook, => Switches de contexte

Lasynchronisme
FileStream.Read()
Que se passe-t-il en cas
de non rponse dun
fichier partag prsent
sur un autre serveur ?

Toujours prfrer les


versions asynchrones
(ex : Silverlight)
7

Les oprations asynchrones


I/O
.net
Win32 User
Mode
Windows
Kernel
Mode
Hardware

Windows I/O Dispatcher

Driver NTFS
Queue dIRPs

ThreadPool
Extraction
des IRP

Le
Thread
nest pas
suspendu

Avantages
Potentiellement un seul thread du threadpool peut

grer toutes les requtes


Peu dallocation de ressources
Allocation de threads uniquement si les rsultats
arrivent plus vite quils ne sont traits.
=> Cration dun thread par CPU
=> Pas de switch de context

Pattern APM
Asynchronous Programming Model

Appel
mthode
BeginRead

BeginRead
retourne
l'IAsyncRes
ult (comme
un reu de
la
demande)

Mise en
queue de la
requte au
Windows
Device
Driver

10

Lorsque
l'opration
est
termine,
un thread
du
ThreadPool
appelle le
callback

Pattern EAP
Event based Asynchronous Pattern
Cr par lquipe Windows Forms
Avantages

Support de lannulation et de la progression


Inconvnients
Peu utilis
APM trs majoritairement utilis dans le fx.net
17 classes seulement implmentent EAP
Principale utilisation : BackgroundWorker

11

Dmo
Utilisation Pattern APM/EAP

12

Asynchronisme VB vNext
Visual Studio Async CTP
http://bit.ly/VSAsyncCTP
Nouvelles fonctionnalits

Asynchronisme
Itrateurs (Enfin !)

Se base sur la TPL et sur la classe Task

13

VB Async CTP
2 nouveaux mots-cls Async et Await
Async est un suffixe de mthode qui identifie une
mthode asynchrone

Oprateur Await suspend lexcution et permet la


reprise de lexcution du code appelant

14

Nouveau pattern bas sur


les Task

Task based asynchronous pattern (TAP)


Les mthodes Async renvoie une Task
Une tche reprsente un travail effectuer

Ne signifie pas forcment cration de


Thread !

15

Dmo
VB Async

16

Conclusion
Dveloppement asynchrone trs simplifi

Async et Await

Utilisation de la Task Parallel Library


Accessible pour tout type dapplications

Mme Silverlight

17

Questions ?

18

MSDN et TechNet : lessentiel


des ressources techniques porte de
clic

Portail administration
et infrastructure pour
informaticiens

Portail de
ressources
technique pour
dveloppeurs
http://msdn.com

http://technet.com
20

You might also like