[C#] : Augmentation mémoire sur affichage d'un formulaire AboutBox
Bonjour,
Citation:
Windows XP SP2
Visual C# Express
Framework 2.0
Mon application Windows Form contient un formulaire utilisé comme un AboutBox, Ce formulaire affiche différentes informations :
En voici le code :
Code:
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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
public class FormAbout : System.Windows.Forms.Form
{
public FormAbout()
{
// Intialisation des objets de la fenêtre
InitializeComponent();
// Récupération des informations de l'assembly
LabelVersion.Text = Application.ProductName + " " +
Application.ProductVersion;
LabelFrameWorkVersion.Text = Environment.Version.ToString();
// Récupération de la mémoire allouée
labelMemory.Text = string.Format("{0:D}
Ko",(Environment.WorkingSet/1024));
// Récupératon des modules chargés {Nom, Version, Date}.
try
{
// Récupération de la liste des modules
ArrayList ndocItems = new ArrayList();
foreach (ProcessModule module in
Process.GetCurrentProcess().Modules)
{
ListViewItem item = new ListViewItem();
item.Text = module.ModuleName;
// Récupération du N° de version
FileVersionInfo verInfo = module.FileVersionInfo;
string versionStr = String.Format("{0}.{1}.{2}.{3}",
verInfo.FileMajorPart,
verInfo.FileMinorPart,
verInfo.FileBuildPart,
verInfo.FilePrivatePart);
item.SubItems.Add(versionStr);
// Récupération de la date
DateTime lastWriteDate =
File.GetLastWriteTime(module.FileName);
string dateStr = lastWriteDate.ToString("g");
item.SubItems.Add(dateStr);
// Ajout de l'élément dans la liste
assembliesListView.Items.Add(item);
}
}
catch (Exception ex)
{
MessageBox.Show(this, ex.ToString(), "Erreur sur la récupération des
information des dépendances", MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
}
protected override void Dispose( bool disposing )
{
if (disposing)
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose(disposing);
}
private void BtcClose_Click(object sender, EventArgs e)
{
this.Close();
}
} |
Ce formulaire est affiché par l'intermédiaire d'un bouton
Code:
1 2 3 4 5 6
|
private void btcViewAbout_Click(object sender, EventArgs e)
{
FormAbout lForm = new FormAbout();
lForm.ShowDialog();
} |
Question 1 : A chaque fois que j'affiche ce formulaire, la taille mémoire pour mon application augmente, de 100 à 350 Ko, est ce normal ?
Question 2 : Je remarque que si je minimize dans la barre des taches mon application, et que je l'affiche à nouveau, la taille mémoire de mon application à considérablement diminuée !, Pourriez vous m'indiquer pourquoi ?
J'ai pris ma fenêtre About comme exemple, mais celà e produit sur tous mes formulaires MDI également. et mon application passe de 15Mo au démarrage, à 98 Mo apres plusieurs ouverture de formulaire MDI qui contient des données sous forme de Chart.
Et apres un minimize, l'application passe à 10Mo voir 12 Mo.
Merci d'avance pour votre aide.
Cldt,