Bonjour depuis 2 jours je développe quelques contrôles utilisateurs qui viennent chacun se binder un nœud qui représente une fonctionnalité sur une caméra industrielle afin d'alléger mes développements futurs.
Pour les nœuds de type float et int j'ai pris le parti de les représenter via un Trackbar. En effet chaque nœud dispose d'un min d'un max, d'un valeur et d'autre paramètre.

J'observe par contre un temps très grand durant l'initialisation... J'ai d'abord cherché du coté du réseau voir s'il y avait des temps de connexion qui faisaient friser l'interface et j'ai fini par trouver que ce qui retentissait se situait sur l'assignation de la valeur de la propriété Maximum de ma Trackbar.

Pour illustrer mon propos je vous propose de code à placer derrière le clic d'un bouton sur une Form :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
private void button1_Click(object sender, EventArgs e)
		{
			Stopwatch sw = new Stopwatch();
			sw.Start();
			TrackBar trb = new TrackBar();
			this.Controls.Add(trb);
			sw.Stop();
			Console.WriteLine(string.Format("Durée alloc + ajout : {0}ms", sw.ElapsedMilliseconds));
			sw.Restart();
			trb.Minimum = 0;
			sw.Stop();
			Console.WriteLine(string.Format("Durée set min : {0}ms", sw.ElapsedMilliseconds));
			sw.Restart();
			trb.Maximum = 1000000000;
			sw.Stop();
			Console.WriteLine(string.Format("Durée set max : {0}ms", sw.ElapsedMilliseconds));
			sw.Restart();
			trb.Value = 0;
			sw.Stop();
			Console.WriteLine(string.Format("Durée set v = 0: {0}ms", sw.ElapsedMilliseconds));
			sw.Restart();
			trb.Value = trb.Maximum / 2;
			sw.Stop();
			Console.WriteLine(string.Format("Durée set v = 1/2max: {0}ms", sw.ElapsedMilliseconds));
 
		}
Le code créé et place la Trackbar sur la form et assigne les valeurs des propriétés min, max, et valeur.

A vous de me dire si vous avez le même comportement que moi... Je ne passe pas la ligne d'assignation du max : La durée explose et le pire c'est que la mémoire aussi ! 3.5GO !

Que faire à part changer de contrôle... ?
J'ai trouvé la possibilité de jouer sur la propriété TrickFrequency mais franchement si on veut un step de 1 de 0 à 1 000 000 000 ça n'enlève pas la contrainte...