Création d'un logiciel pour un Symbol MC75A à l'aide de C# .net CF 2.0. Nous scannons un code à barres et il renvoie des informations de stock, mais j'essaie d'ajouter une fonctionnalité qui obtient une image à partir d'une URL. Chaque analyse actualise l'écran avec les nouvelles données de la base de données et obtient également l'image de la nouvelle URL. Il scanne quelques codes-barres et renvoie peut-être 4/5 images sans problème, puis tout à coup une exception OutOfMemoryException se produit. Le code im utilisant pour obtenir l'image est:.net Compact Framework 2.0 - Exception OutOfMemory lors du téléchargement d'une image
public Bitmap GetImage(string URL)
{
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(URL);
myRequest.Method = "GET";
myRequest.AllowWriteStreamBuffering = false;
HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(myResponse.GetResponseStream());
myResponse.Close();
return bmp;
}
Appelé par:
pbImage.Image = GetImage(ProductImage);
pbImage.SizeMode = PictureBoxSizeMode.StretchImage;
J'ai essayé de se débarrasser de l'image avant chaque nouvelle GET avec pbImage.Image.Dispose() mais toujours obtenir le même exception. Les tailles d'image sont comprises entre 100 Ko et 550 Ko. Que cela fasse une différence, les tailles d'images sont toujours supérieures à 1000 pixels de chaque côté.
Ai-je manqué la bonne façon de disposer avant de ré-obtenir ou est-ce en quelque sorte en cache toutes ces images qui crée alors une exception outofMemory?
les images vont dans des fichiers IE temporaires. Vous voudrez peut-être supprimer votre historique de navigation. Parfois, l'utilisation d'un renifleur comme un violoniste ou un wireshark peut aider à isoler les problèmes de téléchargement. – jdweng
Se brise-t-il toujours sur la même image? System.Drawing est célèbre pour lancer OutOfMem pour beaucoup d'autres raisons. Ceux-ci peuvent être manipulés avec un essai/catch. –
Votre 'myRespones.Close()' devrait être dans un bloc finally ou using. Êtes-vous sûr qu'il n'y a pas d'autres exceptions? –