Bonjour.

Je dispose d'une application winforms dans laquelle je souhaite "monitorer"
la mémoire que celle-ci utilise. Dans ma Form principale j'execute ce code suivant toutes les secondes:

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
 
  void DisplayMemory()
  {
            if (InvokeRequired)
            {
                DelegateVoidVoid d = new DelegateVoidVoid(DisplayMemory);
                try { Invoke(d); }
                catch { }
            }
            else
            {
                long mem = GC.GetTotalMemory(true)/1024;
                int memKo = Convert.ToInt32(mem);
                verticalProgressBar3.Value = memKo;
            }
  }
Le problème est que le chiffre retourné (~500ko) ne correspond pas du tout à ce qu'indique le gestionnaire de tache windows (~16mo).
J'imagine que cela est du au fait que mon application utilise différents threads et qu'ils ne sont pas pris en compte dans le total retourné.
Donc ma question est :p
Comment obtenir la mémoire utilisée par l'ensemble des threads de mon programme?