[C#] BackgroundWorker et Thread.Sleep();

Fermé
silentData Messages postés 183 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 18 octobre 2013 - 21 avril 2012 à 17:54
Bonjour,

Dans le cadre d'un exercice pour les cours, je dois réalisé une petite application très basique qui implémente un BackgroundWorker. J'ai déjà eu une assez bonne formation sur le multithreading Java, Ada et C++, mais jamais C#.

J'ai créé mon objet BackgroundWorker avec sa méthode DoWork dans laquelle je fais de multiples ReportProgress pour annoncer l'avancement des opérations. Cependant, cela n'incrémente pas mon compteur de pourcentage. C'est comme si le BackgroundWorker n'était pas préempté et ne laissait donc pas de ressources au thread principal.

Le seul moyen que j'ai trouvé pour permettre à l'application de tourné en "parallèle" est de faire un System.Threading.Thread.Sleep(1); dans le DoWork(), pour laisser le temps à l'application principale de préempter le thread.

Cela me semle trèèèèèèès moche... Est-ce que vous auriez une idée pour améliorer cela ?

Merci !