(désolé de la réponse tardive)
Déjà un énorme merci d'aider le grand débutant que je suis, je manque de connaissances, exp en dev...
Je n'ai pas de gnat récent et du coup le compilo a tiqué sur sur un truc (généricité au niveau de la procedure), ce n'est pas de l'Ada 95 non ?
J'ai quand même pu faire le test en remettant tout en un seul source (exit le côté générique et pratique de ton task manager)
D'ailleurs, je ne sais pas s'il est minimal (juste pour l'exemple) mais merci de le partager !
J'ai peut-être fait n'importe quoi (ça ne m'étonnerait pas) mais rapidement j'ai collé tout ça en un fichier :
http://pastebin.com/aj5sHKyV
alors le put est commenté parce que sous windows ça fait un csrss.exe qui tourne à mort (il doit s'occuper du graphique je crois)
donc les put_line ça ralentie beaucoup dans une loop, à tel point que le programme n'utilise plus que moins d'1% d'UC
et ensuite tel quel le programme ne tourne pas assez pour monter l'UC, sous process explorer j'ai les infos :
j'ai donc bien 4 threads actifs (~60k changements de contexte attribués à chaque) mais la conso UC va de 2 à 5%, donc ça ne dépasse pas les 15-20% de moyenne au total, et j'ai bien sûr le 5ème thread qui est le programme en lui même (200 CS ?)
Par contre si je commente le Screen_Manager.Get(Process_Id); appelé à chaque boucle de la tâche, j'obtiens 3 threads 25% uc CHACUN
la raison apparemment c'est le wait pour la 4ème tache, si la valeur est mise à 0.0000025 comme les autres j'ai le tant attendu :
100% !!!
Merci infiniment
Mais du coup pour que ce sujet ait plus d'utilité pour les débutants comme moi qui vont lire, faudrait que je trouve mon erreur, j'ai honte de montrer mes sources c'est dégueulasse (des tableaux à indice indéfinis de tâches s'amusant à looper sur des declare de pointeurs sur des éléments trop gros ('size use 200), comprenez-moi bien : j'étais désespéré)
En fait je ne suis pas sûr mais peut-être que je mettais pas de calculs compliqué dans les tâches, les tâches faisaient la même opération (mais pas sur des variables similaires pourtant...) qui consistait à additionner ou multiplier, le compilateur a-t-il été intelligent au point de faire un exéc qui se mette à rassembler le boulot ?
L'informatique reste un mystère, surtout le compilateur et la forme réelle de mon exe qu'il concocte !
En tout cas merci bien de ton aide, efficace et rapide