lundi 29 juin 2009

BackgroundWorker, une note d'utilisation

Il y a quelques temps, j'ai vu 2 ou 3 fois le même motif, utilisé à mon avis à tord, dans le code exécuté en arrière plan par un composant BackgroundWorker..

Ce code contenait effectivement des appels à la méthode Thread.Sleep. Le problème est que la méthode BackgroundWorker.ReportProgress était appelée bien trop souvent ce qui chargeait à nouveau le thread chargé de l'interface utilisateur, rendant l'application non responsive. Une solution simple est de bien s'assurer que l'avancement change effecitvement avant d'appeler BackgroundWorker.ReportProgress. De cette façon, le thread gérant l'UI est au plus appelé 100 fois (à chaque fois que le pourcentage d'avancement change) plutôt que de très nombreuses fois dans une version plus naïve...

Le but de ce composant étant de libérer la thread gérant l'interface utilisateur, une règle est donc d'appeler cette thread depuis le composant BackgroundWorker aussi souvent que nécessaire mais pas plus souvent que nécessaire.

mercredi 24 juin 2009

.NET Framework, une vue d'ensemble

Dernière modification : ajout de Microsoft Reference Source Code Center.

Les services proposés par et autour du .NET Framework se faisant de plus en plus complets, cette page va recenser les principales ressources qui peuvent présenter un intérêt pour le développeur .NET :

Il est également intéressant de noter la mise à disposition d'informations sur Singularity et les rumeurs sur Midori qui pourraient préfigurer la prise en charge du code managé en tant que "citoyen de première classe" au sein des futurs systèmes d'exploitation de Microsoft...