J'ai essayé pendant des heures de comprendre cela. Lorsque cela s'exécutera, il fonctionnera jusqu'à ce que le système manque de mémoire. J'ai essayé de disposer du bmp créé après utilisation, cela ne faisait aucune différence. J'ai également essayé de disposer du webbrowser, mais j'ai besoin d'exécuter la page web sur une boucle avec la bonne hauteur/largeur, etc. pour en faire une capture. J'ai essayé de créer un nouveau webbrowser tout ce qu'il boucle puis en disposer mais cela ne fonctionnerait pas. Quelqu'un peut-il voir ce qui peut se passer ici?C# erreur de mémoire insuffisante
La boucle:
wbcondor1.AllowNavigation = true;
wbcondor1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(wbcondor1_DocumentCompleted);
wbcondor1.Navigate("blanked out");
le document terminé
private void wbcondor1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
Bitmap condor1bmp = new Bitmap(600, 1000);
wbcondor1.DrawToBitmap(condor1bmp, new Rectangle(wbcondor1.Location.X, wbcondor1.Location.Y, wbcondor1.Width, wbcondor1.Height));
if (Convert.ToString(condor1bmp.GetPixel(553, 558)) == "Color [A=255, R=232, G=30, B=48]") { c1to1.Text = "lower"; }
if (Convert.ToString(condor1bmp.GetPixel(553, 584)) == "Color [A=255, R=232, G=30, B=48]") { c1to2.Text = "lower"; }
if (Convert.ToString(condor1bmp.GetPixel(553, 608)) == "Color [A=255, R=232, G=30, B=48]") { c1to3.Text = "lower"; }
if (Convert.ToString(condor1bmp.GetPixel(553, 633)) == "Color [A=255, R=232, G=30, B=48]") { c1to4.Text = "lower"; }
if (Convert.ToString(condor1bmp.GetPixel(553, 658)) == "Color [A=255, R=232, G=30, B=48]") { c1to5.Text = "lower"; }
if (Convert.ToString(condor1bmp.GetPixel(553, 558)) == "Color [A=255, R=0, G=175, B=88]") { c1to1.Text = "higher"; }
if (Convert.ToString(condor1bmp.GetPixel(553, 584)) == "Color [A=255, R=0, G=175, B=88]") { c1to2.Text = "higher"; }
if (Convert.ToString(condor1bmp.GetPixel(553, 608)) == "Color [A=255, R=0, G=175, B=88]") { c1to3.Text = "higher"; }
if (Convert.ToString(condor1bmp.GetPixel(553, 633)) == "Color [A=255, R=0, G=175, B=88]") { c1to4.Text = "higher"; }
if (Convert.ToString(condor1bmp.GetPixel(553, 658)) == "Color [A=255, R=0, G=175, B=88]") { c1to5.Text = "higher"; }
// bmp.Save("condor1.gif");
condor1bmp.Dispose();
}
Merci à tous, nous espérons que quelqu'un peut voir ce que je suis absent :(
Par exemple, commentez le corps de 'wbcondor1_DocumentCompleted()' - avez-vous encore de la mémoire à court terme? – cdhowie
n'a même pas pensé à faire ça. Juste fait et il sera toujours à court, continue à construire avec chaque boucle – mxadam
Ensuite, ce bloc n'est pas la source de votre problème. Exécutez votre code dans un profileur et recherchez des allocations énormes, ou un grand nombre de petites allocations, puis essayez de trouver d'où elles viennent. – cdhowie