Attente active de threads
Bonjour,
Dans le cadre de mon projet, j'ai mon thread principal (qui gère l'UI) qui lance plusieurs threads (de 2 à 3) qui font des calculs en fond. Ces threads intéragissent sur la meme barre d'avancement gérée par mon UI.
Mon UI doit attendre ces threads avant de continuer
Je ne peux donc pas utiliser les méthodes Join pour attendre ces threads si je veux pouvoir utiliser la barre d'avancement.
J'ai donc créé quelque chose comme ça :
Code:
1 2 3 4
| while (!((thread1 == null && thread2 == null) || (!thread1.IsAlive && !thread2.IsAlive)))
{
Thread.Sleep(1);
} |
Existe-il une meilleure solution ?
Cependant je me pose des questions sur la valeur minimale de thread.sleep acceptable (sur mon ordi 1 passe visiblement mais peut etre que sur des ordinateurs moins performants cela ne passerait pas) afin que mes threads ne restent pas trop bloqués sur le delegate qui augmente la barre de progression.
J'ai effectué des recherches sur google, mais bien souvent j'ai eu du mal soit à comprendre soit à les trouver convenables.
Merci d'avance,