Julien Chomarat
Si comme moi vous avez des scripts Linqpad qui ont un temps de traitement un peu long, il est toujours bon d'afficher une petite barre de progression.
Bien que l'utilisation ne soit pas compliquée, j'oublie toujours quelque chose pour que ça fonctionne du premier coup!
Voici, un exemple simple qui fait le job:
void Main()
{
// On crée l'objet ProgressBar
var progressBar = new Util.ProgressBar("En attente...");
// On affiche la ProgressBar dans la fenêtre de résultats
progressBar.Dump();
int total = 10;
for (int i = 0; i <= total; i++)
{
// On change le texte par défaut
progressBar.Caption = $"En cours: {i}/{total}";
// Le champ Fraction sert à faire progresser la zone bleue
// ATTENTION: le résultat de la division doit être un double ou un float
progressBar.Fraction = (float)i / total;
Thread.Sleep(200);
}
}
Le champ Fraction
s'occupe de remplir votre ProgressBar
. Ce champ accepte une valeur allant de 0 (vide) à 1 (plein). Vous devez être vigilant quand vous la calculez à ce que le résultat de la division soit un double
ou un float
.
Dans le code si je ne cast pas i
en (float)i
la division se fait entre deux entiers et le résultat est toujours tronqué, par exemple dans le premier cas 4/10 = 0
alors que dans le second cas (float)4/10 = 0,4
.
Voici le résultat dans Linqpad: