Bonjour à tous,
j'ai un petit souci de mémoire dans un mes programmes.
En je fait un readAllBytes sur un fichier et j'envoie par socket. Du coup la consommation mémoire du programme augmente, jusque la pas de souci cependant en quittant la méthode la mémoire n'est pas libérer comme cela se fait ??
Voici mon code :
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
28
29
30
31
32
33 private void Download(String Destinataire, String Commande, Byte[] Ele) { try { String name = System.Text.Encoding.Unicode.GetString(Ele); name = name.Substring(0, name.Length - 1); Byte[] tab = System.IO.File.ReadAllBytes(name); Int32 size = tab.Length; Int32 i = 0; Byte[] tosend = null; FileInfo f = new FileInfo(name); Byte[] tmp = System.Text.Encoding.ASCII.GetBytes(f.Name); Byte[] zero = System.Text.Encoding.ASCII.GetBytes("\0"); long s = f.Length; Byte[] siz = System.Text.Encoding.ASCII.GetBytes(Convert.ToString(s) + "\0"); while (i < size) { if (i + 65536 <= size) tosend = Packet.SubByte(tab, i, i + 65536); else tosend = Packet.SubByte(tab, i, size); tosend = Packet.Copy(zero, tosend); tosend = Packet.Copy(tmp, tosend); tosend = Packet.Copy(siz, tosend); Byte[] packet = Packet.BuildPacket(Destinataire, Commande, tosend); this.PushSend(packet); i += 65536; } } catch (Exception) { } }
Merci d'avance !
Partager