SlideShare une entreprise Scribd logo
C# 5/Rx Extensions :Vers un développement asynchroneGiovanni ClementWygwamEric Vernié Microsoft
Motivations
Wygday 2011  - C#5 Async CTP - Reactive Extensions
Point de rupture
La programmation parallèle est un art difficile
Example de code séquentiel (C#)for (int z = 0; z < nbandesReel; z++) {intoffSetpositiony = (tailleBandeY) * (z);    a = xmin;   b = (ymin) + (intigralY * tailleBandeY) * z;   Bitmap bmp = DessinerBandeUnsafe(b,width ,tailleBandeY);                   Rectangle rect = new Rectangle(0, offSetpositiony, width, tailleBandeY);Gfx.DrawImage(bmp, rect);}           //Code omis pour plus de clarté
Code parallèle manuelManualResetEventmre = new ManualResetEvent(false);                ReaderWriterLockSlimlck = new ReaderWriterLockSlim();             int z = 0;int restant = nbandesReel;            for (z = 0; z < nbandesReel; z++)            {        param.b = (ymin) + (intigralY * tailleBandeY) * z;param.offSetpositiony = (tailleBandeY) * (z); ThreadPool.QueueUserWorkItem((objectuserState) =>                {Parametres p = (Parametres)userState;                    Bitmap bmp = this.DessinerBandeUnsafe(p.b, p.width, p.tailleBandeY);                                         Rectangle rect = new Rectangle(0, p.offSetpositiony, p.width, p.tailleBandeY);try                    {lck.EnterWriteLock(); Gfx.DrawImage(bmp, rect);                    }finally                    {lck.ExitWriteLock();                      }                    if (Interlocked.Decrement(ref restant) == 0)mre.Set();                                              }, param);            }mre.WaitOne(); SynchroSurMandelbrotComplete();        }
Il est donc urgent de simplifier !!
Microsoft nous aide avec la TaskParallel Library
TaskParallel Library (.NET)Chaque itération est une tâcheParallel.For(0, nbandesReel, 1, (z) =>  {intoffSetpositiony = (tailleBandeY) * (z);        b = (ymin) + (intigralY * tailleBandeY) * z;       Bitmap bmp = this.DessinerBandeUnsafe(b, width, tailleBandeY);       Rectangle rect = new Rectangle(0, offSetpositiony, width, tailleBandeY);this.SyncroDessinerFractal(new DessinerEventArgs(bmp, rect, true));});Toutes les tâches doivent êtres finies avant de poursuivre
Les Tasks en action
Penser Parallèle
L’offre parallèle de Visual Studio 2010 aujourd’hui
Nouvelle librairie TPL DataFlow
PipelineCoordination orientée événementsModélisation orientée flux de données
Jeux de primitives (blocs) pour communiquer par message au sein d’un processusPenser “Mise en tampon + traitement”Construitau dessus des Tâches TPL, des collections concurrentes, …Les “Blocs Dataflow” peuvent êtres mis en liaisons pour créer des réseaux de communicationRepose sur des concepts / designs provenantDix ans d’expérience en recherche en informatiqueInspiré d’implémentations MicrosoftAsynchronous Agents librarydans Visual C++ 2010CCR de Microsoft RoboticsIntroduction à TPL DataFlowNouvelle librairie orientée flux de données
Blocs de flux de données
Bloc pour stocker des donnéesBufferBlock<T>private var _buffer = newBufferBlock<int>(); private static void Producer(){    while(true)    {int item = Produce();        _buffer.Post(item);    }}private static asyncvoid ConsumerAsync(){    while(true)    {int item = await _buffer.ReceiveAsync();        Process(item);    }}
Bloc d’exécutionActionBlock<TInput>var actionWrite = new ActionBlock<int>(item => Console.WriteLine(item));var buffer = new BufferBlock<int>();buffer.LinkTo(actionWrite);for (int i = 0; i < 10; i++)    buffer.Post(i);
Bloc d’ExécutionTransformBlock<TInput,TOutput>var transformPow = new TransformBlock<double, double>(d => Math.Pow(d, 2));var transformSqrt = new TransformBlock<double, double>(d => Math.Sqrt(d));var actionWrite = new ActionBlock<double>(d => Console.WriteLine(d));transformPow.LinkTo(transformSqrt);transformSqrt.LinkTo(actionWrite);for (double d = 0; d < 10; d++)    transformPow.Post(d);
Bloc pour stocker des données BroadcastBlock<T>var broadcast = new BroadcastBlock<int>(_ => _);var buffer1 = new BufferBlock<int>();var buffer2 = new BufferBlock<int>();broadcast.LinkTo(buffer2);broadcast.LinkTo(buffer1);for (int i = 0; i < 10;  i++){    broadcast.Post(i);}for (int i = 0; i < 10;  i++){    Console.WriteLine("Buffer1 " +                 buffer1.Receive());    Console.WriteLine("Buffer2 " +                buffer2.Receive());}
TPL DataFlow en action
Penser parallèle et structurer l’application doit donc devenir une seconde nature afin que l’application monte efficacement en charge.
Mais développer parallèle, ce n’est pas que la performance !!
C’est aussi l’asynchronisme
AsynchronousProgramming Model (APM)IAsyncResultBeginRead(byte[] array,intoffset,intnumBytes, AsyncCallbackuserCallback,objectstateObject)intEndRead(IAsyncResultasynResult)Event-basedAsynchronous Pattern (EAP)void SendAsync( IPAddress address, Object userToken )pingSender.PingCompleted+= new PingCompletedEventHandler (PingCompletedCallback);Modèles existant
Task-basedAsynchronous Pattern (TAP)Task, et Task<Tresult>Nouvelles fonctionnalités du langage C# 5 async et awaitReactive ExtensionsNouveaux Modèles
TAP : Comment çamarche ?async Task<XElement> GetRssAsync(stringurl) {var client = newWebClient();var task = client.DownloadStringTaskAsync(url);var text = await task;var xml = XElement.Parse(text);return xml;}
async Task<XElement> GetRssAsync(string url) {var client = new WebClient();var task = client.DownloadStringTaskAsync(url);var text = await task;var xml = XElement.Parse(text);    return xml;}TAP Comment çamarche ?Task<XElement> GetRssAsync(stringurl) {var $builder = AsyncMethodBuilder<XElement>.Create();var $state = 0;TaskAwaiter<string> $a1;Action $resume = delegate {try {if ($state == 1) goto L1;var client = newWebClient();var task = client.DownloadStringTaskAsync(url);            $state = 1;            $a1 = task.GetAwaiter();if ($a1.BeginAwait($resume)) return;        L1: var text = $a1.EndAwait();var xml = XElement.Parse(text);            $builder.SetResult(xml);        }catch (Exception $ex) { $builder.SetException($ex); }    };    $resume();return $builder.Task;}
TAP en action
 Bonne intégration avec Tasks
await sur méthodes de TaskEx (Run ou AwaitAll)
TransformationTask<T> en T au retour de await
 Support de l’annulation
CancellationTokenSource
Gestion des exceptions
try/catch autour de await
OperationCanceledException pour annulationC# Async composition
Reactive Extension« Asynchronisme »Une tache est asynchrone, SSI son éxécution ne bloque pas le contexte applicatif dans lequel elle se trouve.
Reactive ExtensionBesoin d’une interface graphique fluideConsommation de servicesApplications connectées …
Reactive ExtensionRx Extensions <-> Reactive ExtensionsEnsemble d’outils (extensions)  facilitant la gestions de taches / contextes asynchrones dans vos applications.
Reactive ExtensionFluent
Methodechaining : Nouveau context  Dernier contextFacilité de débugging
Ubiquitaire
Producer / Consumers d’events
 Finit les multitudes de callbacks a gérerReactive ExtensionComment c’est fait ?1 DLL principale : System.ReactiveReactive ExtensionComment c’est fait ?Utilise :
Threading de la BCL (TPL)
Collections Threadsafe
RuntimeobjectsReactive Extension 2 Interfaces à retenir  :IObserver<T>IObservable<T>
Reactive ExtensionObservable/Observer <T>Souscription

Contenu connexe

Tendances

Comment développer un serveur métier en python/C++
Comment développer un serveur métier en python/C++Comment développer un serveur métier en python/C++
Comment développer un serveur métier en python/C++
cppfrug
 
Ingénierie de la performance au sein des mégadonnées
Ingénierie de la performance au sein des mégadonnéesIngénierie de la performance au sein des mégadonnées
Ingénierie de la performance au sein des mégadonnées
Daniel Lemire
 
Traitement des données massives (INF442, A4)
Traitement des données massives (INF442, A4)Traitement des données massives (INF442, A4)
Traitement des données massives (INF442, A4)
Frank Nielsen
 
Programmation fonctionnelle
Programmation fonctionnelleProgrammation fonctionnelle
Programmation fonctionnelle
Geeks Anonymes
 
Asyncio: offrez des tulipes à vos entrées sorties asynchrones
Asyncio: offrez des tulipes à vos entrées sorties asynchronesAsyncio: offrez des tulipes à vos entrées sorties asynchrones
Asyncio: offrez des tulipes à vos entrées sorties asynchrones
tchappui
 
Tests unitaires : Utilisation de la librairie CUnit
Tests unitaires : Utilisation de la librairie CUnitTests unitaires : Utilisation de la librairie CUnit
Tests unitaires : Utilisation de la librairie CUnit
ECAM Brussels Engineering School
 
[Paris Unity3D meetup] - Système d’instancing dans endless legend reskin
[Paris Unity3D meetup] - Système d’instancing dans endless legend reskin[Paris Unity3D meetup] - Système d’instancing dans endless legend reskin
[Paris Unity3D meetup] - Système d’instancing dans endless legend reskin
BeMyApp
 
cours algorithme
cours algorithmecours algorithme
cours algorithme
mohamednacim
 
Correction md2 fabien orienté object
Correction md2 fabien orienté objectCorrection md2 fabien orienté object
Correction md2 fabien orienté object
yahyaoui hamdi
 
C++ 11/14
C++ 11/14C++ 11/14
C++ 11/14
Alexandre Hamez
 
Chapitre 4 récursivité
Chapitre 4 récursivitéChapitre 4 récursivité
Chapitre 4 récursivité
Sana Aroussi
 
Type abstrait de données
Type abstrait de donnéesType abstrait de données
Type abstrait de données
ECAM Brussels Engineering School
 
Nio sur Netty par Mouhcine Moulou - 3 avril 2014
Nio sur Netty par Mouhcine Moulou - 3 avril 2014Nio sur Netty par Mouhcine Moulou - 3 avril 2014
Nio sur Netty par Mouhcine Moulou - 3 avril 2014
SOAT
 
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Amel Morchdi
 

Tendances (18)

Comment développer un serveur métier en python/C++
Comment développer un serveur métier en python/C++Comment développer un serveur métier en python/C++
Comment développer un serveur métier en python/C++
 
Ingénierie de la performance au sein des mégadonnées
Ingénierie de la performance au sein des mégadonnéesIngénierie de la performance au sein des mégadonnées
Ingénierie de la performance au sein des mégadonnées
 
Traitement des données massives (INF442, A4)
Traitement des données massives (INF442, A4)Traitement des données massives (INF442, A4)
Traitement des données massives (INF442, A4)
 
Programmation fonctionnelle
Programmation fonctionnelleProgrammation fonctionnelle
Programmation fonctionnelle
 
Récursivité
RécursivitéRécursivité
Récursivité
 
Asyncio: offrez des tulipes à vos entrées sorties asynchrones
Asyncio: offrez des tulipes à vos entrées sorties asynchronesAsyncio: offrez des tulipes à vos entrées sorties asynchrones
Asyncio: offrez des tulipes à vos entrées sorties asynchrones
 
Tests unitaires : Utilisation de la librairie CUnit
Tests unitaires : Utilisation de la librairie CUnitTests unitaires : Utilisation de la librairie CUnit
Tests unitaires : Utilisation de la librairie CUnit
 
[Paris Unity3D meetup] - Système d’instancing dans endless legend reskin
[Paris Unity3D meetup] - Système d’instancing dans endless legend reskin[Paris Unity3D meetup] - Système d’instancing dans endless legend reskin
[Paris Unity3D meetup] - Système d’instancing dans endless legend reskin
 
DCT1 4SI
DCT1  4SIDCT1  4SI
DCT1 4SI
 
cours algorithme
cours algorithmecours algorithme
cours algorithme
 
Correction md2 fabien orienté object
Correction md2 fabien orienté objectCorrection md2 fabien orienté object
Correction md2 fabien orienté object
 
C++ 11/14
C++ 11/14C++ 11/14
C++ 11/14
 
Chapitre 4 récursivité
Chapitre 4 récursivitéChapitre 4 récursivité
Chapitre 4 récursivité
 
Type abstrait de données
Type abstrait de donnéesType abstrait de données
Type abstrait de données
 
Résumer arithmétique
Résumer arithmétiqueRésumer arithmétique
Résumer arithmétique
 
Nio sur Netty par Mouhcine Moulou - 3 avril 2014
Nio sur Netty par Mouhcine Moulou - 3 avril 2014Nio sur Netty par Mouhcine Moulou - 3 avril 2014
Nio sur Netty par Mouhcine Moulou - 3 avril 2014
 
C4 fonctions
C4 fonctionsC4 fonctions
C4 fonctions
 
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
 

En vedette

HTML5 W3C Conference Euratechnologie
HTML5 W3C Conference EuratechnologieHTML5 W3C Conference Euratechnologie
HTML5 W3C Conference Euratechnologie
wyggio
 
Wygday 2011 - Introduction à HTML5
Wygday 2011 - Introduction à HTML5Wygday 2011 - Introduction à HTML5
Wygday 2011 - Introduction à HTML5
wyggio
 
Techdays 2012 - Développement Web Mobile avec Microsoft
Techdays 2012 - Développement Web Mobile avec MicrosoftTechdays 2012 - Développement Web Mobile avec Microsoft
Techdays 2012 - Développement Web Mobile avec Microsoft
wyggio
 
Identification des menances portant sur les données
Identification des menances portant sur les donnéesIdentification des menances portant sur les données
Identification des menances portant sur les données
ASPLENIUM
 
Newsstand
NewsstandNewsstand
ICHEC - PME plus - Des aides pour entreprendre à Bruxelles
ICHEC - PME plus - Des aides pour entreprendre à BruxellesICHEC - PME plus - Des aides pour entreprendre à Bruxelles
ICHEC - PME plus - Des aides pour entreprendre à Bruxelles
Azaerts David
 
2013_1_ciMedio_Tema6TrobesBibliografiaRecomendada
2013_1_ciMedio_Tema6TrobesBibliografiaRecomendada2013_1_ciMedio_Tema6TrobesBibliografiaRecomendada
2013_1_ciMedio_Tema6TrobesBibliografiaRecomendada
Biblioteca d'Humanitats, Universitat de València
 
2014_1_ciAvanzTema4RecursosDinfEnLasBibliotecasUV
2014_1_ciAvanzTema4RecursosDinfEnLasBibliotecasUV2014_1_ciAvanzTema4RecursosDinfEnLasBibliotecasUV
2014_1_ciAvanzTema4RecursosDinfEnLasBibliotecasUV
Biblioteca d'Humanitats, Universitat de València
 
Chapter 5 l'ancien et la croissance eglise
Chapter 5 l'ancien et la croissance egliseChapter 5 l'ancien et la croissance eglise
Chapter 5 l'ancien et la croissance eglise
Gervaisson Pluviose
 
El plagio
El plagioEl plagio
El plagio
mateom1coloyo
 
Diseño estructurado
Diseño estructuradoDiseño estructurado
Diseño estructurado
Dascorp
 
2014_1_ciAvanzTema6_4TrobesAvanzEncontrarTesis
2014_1_ciAvanzTema6_4TrobesAvanzEncontrarTesis2014_1_ciAvanzTema6_4TrobesAvanzEncontrarTesis
2014_1_ciAvanzTema6_4TrobesAvanzEncontrarTesis
Biblioteca d'Humanitats, Universitat de València
 
Tec de la inf 10º 2014
Tec de la inf 10º 2014Tec de la inf 10º 2014
Tec de la inf 10º 2014
iptchpanama
 
ResearchTalks Vol.8 - La vision de Leaseplan des voitures de société et fisca...
ResearchTalks Vol.8 - La vision de Leaseplan des voitures de société et fisca...ResearchTalks Vol.8 - La vision de Leaseplan des voitures de société et fisca...
ResearchTalks Vol.8 - La vision de Leaseplan des voitures de société et fisca...
ResearchTalks [conference]
 
Arturo gomez jaramillo
Arturo gomez jaramilloArturo gomez jaramillo
Arturo gomez jaramillo
Sandra Zapata
 
El corazón delator
El corazón delatorEl corazón delator
El corazón delator
evejita93
 
2014_1_ciAvanzREP
2014_1_ciAvanzREP2014_1_ciAvanzREP
2014_1_ciAvanzBhaRila
2014_1_ciAvanzBhaRila2014_1_ciAvanzBhaRila
LLBA spa
LLBA spaLLBA spa

En vedette (20)

HTML5 W3C Conference Euratechnologie
HTML5 W3C Conference EuratechnologieHTML5 W3C Conference Euratechnologie
HTML5 W3C Conference Euratechnologie
 
Wygday 2011 - Introduction à HTML5
Wygday 2011 - Introduction à HTML5Wygday 2011 - Introduction à HTML5
Wygday 2011 - Introduction à HTML5
 
Techdays 2012 - Développement Web Mobile avec Microsoft
Techdays 2012 - Développement Web Mobile avec MicrosoftTechdays 2012 - Développement Web Mobile avec Microsoft
Techdays 2012 - Développement Web Mobile avec Microsoft
 
Identification des menances portant sur les données
Identification des menances portant sur les donnéesIdentification des menances portant sur les données
Identification des menances portant sur les données
 
Newsstand
NewsstandNewsstand
Newsstand
 
ICHEC - PME plus - Des aides pour entreprendre à Bruxelles
ICHEC - PME plus - Des aides pour entreprendre à BruxellesICHEC - PME plus - Des aides pour entreprendre à Bruxelles
ICHEC - PME plus - Des aides pour entreprendre à Bruxelles
 
2013_1_ciMedio_Tema6TrobesBibliografiaRecomendada
2013_1_ciMedio_Tema6TrobesBibliografiaRecomendada2013_1_ciMedio_Tema6TrobesBibliografiaRecomendada
2013_1_ciMedio_Tema6TrobesBibliografiaRecomendada
 
2014_1_ciAvanzTema4RecursosDinfEnLasBibliotecasUV
2014_1_ciAvanzTema4RecursosDinfEnLasBibliotecasUV2014_1_ciAvanzTema4RecursosDinfEnLasBibliotecasUV
2014_1_ciAvanzTema4RecursosDinfEnLasBibliotecasUV
 
Chapter 5 l'ancien et la croissance eglise
Chapter 5 l'ancien et la croissance egliseChapter 5 l'ancien et la croissance eglise
Chapter 5 l'ancien et la croissance eglise
 
El plagio
El plagioEl plagio
El plagio
 
Diseño estructurado
Diseño estructuradoDiseño estructurado
Diseño estructurado
 
2014_1_ciAvanzTema6_4TrobesAvanzEncontrarTesis
2014_1_ciAvanzTema6_4TrobesAvanzEncontrarTesis2014_1_ciAvanzTema6_4TrobesAvanzEncontrarTesis
2014_1_ciAvanzTema6_4TrobesAvanzEncontrarTesis
 
Tec de la inf 10º 2014
Tec de la inf 10º 2014Tec de la inf 10º 2014
Tec de la inf 10º 2014
 
ResearchTalks Vol.8 - La vision de Leaseplan des voitures de société et fisca...
ResearchTalks Vol.8 - La vision de Leaseplan des voitures de société et fisca...ResearchTalks Vol.8 - La vision de Leaseplan des voitures de société et fisca...
ResearchTalks Vol.8 - La vision de Leaseplan des voitures de société et fisca...
 
Arturo gomez jaramillo
Arturo gomez jaramilloArturo gomez jaramillo
Arturo gomez jaramillo
 
El corazón delator
El corazón delatorEl corazón delator
El corazón delator
 
2014_1_ciAvanzREP
2014_1_ciAvanzREP2014_1_ciAvanzREP
2014_1_ciAvanzREP
 
2014_1_ciAvanzBhaRila
2014_1_ciAvanzBhaRila2014_1_ciAvanzBhaRila
2014_1_ciAvanzBhaRila
 
Londres
LondresLondres
Londres
 
LLBA spa
LLBA spaLLBA spa
LLBA spa
 

Similaire à Wygday 2011 - C#5 Async CTP - Reactive Extensions

Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...
Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...
Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...
Normandy JUG
 
Javascript : fondamentaux et OOP
Javascript : fondamentaux et OOPJavascript : fondamentaux et OOP
Javascript : fondamentaux et OOP
Jean-Pierre Vincent
 
Présentation Javascript à l'ESI (Alger)
Présentation Javascript à l'ESI (Alger)Présentation Javascript à l'ESI (Alger)
Présentation Javascript à l'ESI (Alger)
Dr Samir A. ROUABHI
 
C# et .NET : Enigmes et puzzles
C# et .NET : Enigmes  et puzzlesC# et .NET : Enigmes  et puzzles
C# et .NET : Enigmes et puzzles
Microsoft
 
Ch8 correction exercices (1)
Ch8 correction exercices (1)Ch8 correction exercices (1)
Ch8 correction exercices (1)
abdellah12
 
11-Concurrence-Section critiques.pdf
11-Concurrence-Section critiques.pdf11-Concurrence-Section critiques.pdf
11-Concurrence-Section critiques.pdf
Patiento Del Mar
 
3 vb reference
3 vb reference3 vb reference
3 vb reference
kkatia31
 
Introduction à React
Introduction à ReactIntroduction à React
Introduction à React
Thibault Martinez
 
TP3: Comportement Temps Réel de l'Agent Perception
TP3: Comportement Temps Réel de l'Agent PerceptionTP3: Comportement Temps Réel de l'Agent Perception
TP3: Comportement Temps Réel de l'Agent Perception
Said Benaissa
 
Projet base de donnée
Projet base de donnée Projet base de donnée
Projet base de donnée
MakremArfaoui2
 
GWT : under the hood
GWT : under the hoodGWT : under the hood
GWT : under the hood
svuillet
 
Spring Batch
Spring BatchSpring Batch
Spring Batch
victor_gallet
 
Découvrez C# 4.0 et les améliorations apportées à la BCL
Découvrez C# 4.0 et les améliorations apportées à la BCLDécouvrez C# 4.0 et les améliorations apportées à la BCL
Découvrez C# 4.0 et les améliorations apportées à la BCL
DotNetHub
 
Spark - au dela du dataframe avec Tungsten et Catalyst
Spark - au dela du dataframe avec Tungsten et CatalystSpark - au dela du dataframe avec Tungsten et Catalyst
Spark - au dela du dataframe avec Tungsten et Catalyst
Mathieu Goeminne
 
Javascript - Fonctions : que fait ce code ?
Javascript - Fonctions : que fait ce code ?Javascript - Fonctions : que fait ce code ?
Javascript - Fonctions : que fait ce code ?
Ruau Mickael
 
Fondamentaux portée - contexte - function ms tech days
Fondamentaux   portée - contexte - function ms tech daysFondamentaux   portée - contexte - function ms tech days
Fondamentaux portée - contexte - function ms tech days
Jean-Pierre Vincent
 
Introduction à JavaScript
Introduction à JavaScriptIntroduction à JavaScript
Introduction à JavaScript
Microsoft
 
Javascript ne se limite pas à jquery
Javascript ne se limite pas à jqueryJavascript ne se limite pas à jquery
Javascript ne se limite pas à jquery
neuros
 
Pré projet thèse "VILLE AGILE ET AGILITÉ URBAINE : VERS UN NOUVEAU DESIGN M...
Pré projet thèse "VILLE AGILE ET AGILITÉ URBAINE : VERS UN NOUVEAU DESIGN M...Pré projet thèse "VILLE AGILE ET AGILITÉ URBAINE : VERS UN NOUVEAU DESIGN M...
Pré projet thèse "VILLE AGILE ET AGILITÉ URBAINE : VERS UN NOUVEAU DESIGN M...
François-Florimond FLUCK
 

Similaire à Wygday 2011 - C#5 Async CTP - Reactive Extensions (20)

Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...
Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...
Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...
 
Javascript : fondamentaux et OOP
Javascript : fondamentaux et OOPJavascript : fondamentaux et OOP
Javascript : fondamentaux et OOP
 
Présentation Javascript à l'ESI (Alger)
Présentation Javascript à l'ESI (Alger)Présentation Javascript à l'ESI (Alger)
Présentation Javascript à l'ESI (Alger)
 
C# et .NET : Enigmes et puzzles
C# et .NET : Enigmes  et puzzlesC# et .NET : Enigmes  et puzzles
C# et .NET : Enigmes et puzzles
 
Dijkstra kshortest
Dijkstra kshortestDijkstra kshortest
Dijkstra kshortest
 
Ch8 correction exercices (1)
Ch8 correction exercices (1)Ch8 correction exercices (1)
Ch8 correction exercices (1)
 
11-Concurrence-Section critiques.pdf
11-Concurrence-Section critiques.pdf11-Concurrence-Section critiques.pdf
11-Concurrence-Section critiques.pdf
 
3 vb reference
3 vb reference3 vb reference
3 vb reference
 
Introduction à React
Introduction à ReactIntroduction à React
Introduction à React
 
TP3: Comportement Temps Réel de l'Agent Perception
TP3: Comportement Temps Réel de l'Agent PerceptionTP3: Comportement Temps Réel de l'Agent Perception
TP3: Comportement Temps Réel de l'Agent Perception
 
Projet base de donnée
Projet base de donnée Projet base de donnée
Projet base de donnée
 
GWT : under the hood
GWT : under the hoodGWT : under the hood
GWT : under the hood
 
Spring Batch
Spring BatchSpring Batch
Spring Batch
 
Découvrez C# 4.0 et les améliorations apportées à la BCL
Découvrez C# 4.0 et les améliorations apportées à la BCLDécouvrez C# 4.0 et les améliorations apportées à la BCL
Découvrez C# 4.0 et les améliorations apportées à la BCL
 
Spark - au dela du dataframe avec Tungsten et Catalyst
Spark - au dela du dataframe avec Tungsten et CatalystSpark - au dela du dataframe avec Tungsten et Catalyst
Spark - au dela du dataframe avec Tungsten et Catalyst
 
Javascript - Fonctions : que fait ce code ?
Javascript - Fonctions : que fait ce code ?Javascript - Fonctions : que fait ce code ?
Javascript - Fonctions : que fait ce code ?
 
Fondamentaux portée - contexte - function ms tech days
Fondamentaux   portée - contexte - function ms tech daysFondamentaux   portée - contexte - function ms tech days
Fondamentaux portée - contexte - function ms tech days
 
Introduction à JavaScript
Introduction à JavaScriptIntroduction à JavaScript
Introduction à JavaScript
 
Javascript ne se limite pas à jquery
Javascript ne se limite pas à jqueryJavascript ne se limite pas à jquery
Javascript ne se limite pas à jquery
 
Pré projet thèse "VILLE AGILE ET AGILITÉ URBAINE : VERS UN NOUVEAU DESIGN M...
Pré projet thèse "VILLE AGILE ET AGILITÉ URBAINE : VERS UN NOUVEAU DESIGN M...Pré projet thèse "VILLE AGILE ET AGILITÉ URBAINE : VERS UN NOUVEAU DESIGN M...
Pré projet thèse "VILLE AGILE ET AGILITÉ URBAINE : VERS UN NOUVEAU DESIGN M...
 

Wygday 2011 - C#5 Async CTP - Reactive Extensions

Notes de l'éditeur

  1. Avec l’arrivée de Windows 7 64 Bits et de Windows 2008 R2 Plus sérieusement,Montrer les cores sur ma machines
  2. On eleve le niveaud’abstraction du thread aux tasks, et aux algos de plus haut niveaucomme le parallel.For
  3. MPE
  4. MPE