Programmation asynchrone et barre de progression

Le Framework .NET 4.5 a apporté une nouveauté assez géniale : await/async.

Cette nouveauté permet de manipuler les tâches asynchrone d’une manière facilitée, et surtout sécurisée.
Facilité parce qu’il suffit de ne retenir que trois mots Task, async, await.
Sécurisé car il est presque impossible d’avoir un deadlock quand on utilise les décorateurs async/await alors qu’on fait du multithread.

Le code de base est celui-ci :

Il est absoluement nécessaire d’avoir dans votre fonction un await quelque part.
L’effet de await est globalement de lancer la tâche, attendre qu’elle finisse, prendre son résultat et le retourner sans se soucier de l’encapsulation sous forme de Task.
L’avantage principal, c’est que le temps qu’il passe à attendre… il n’utilise pas de ressource processeur.
Ce qui peut s’avérer une très bonne chose si votre tâche demande beaucoup d’attente (communication avec une BDD, un service web…)
Continue reading

Réflexions à propos de l’e-learning

Ces derniers temps, je m’intéresse pas mal à cette “mode” que sont les MOOC. J’en ai suivi sur FUN, la Microsoft Virtual Academy, Openclassrooms, et j’ai vraiment du mal à voir la différence avec la formation que j’avais eu en e-learning de la part de terra-nova, dans le cadre du Label Humanité.

Comme pas mal de monde sur internet, j’ai été très motivés par les promesses faites par les hébergeurs de mooc. On nous promet de l’interaction, de l’adaptation à notre rythme… Oui mais voilà, ça le fait pas vraiment.

Continue reading