none
Resim Dosyaları Fazla Ram Kullandırır mı? RRS feed

  • Soru

  • Selam arkadaşlar.Projemde 11-12 adet picturebox kontrolü kullanmaktayım.Bunlar daha sonradan açılan bir forma ait.Bunları dinamik olarak oluşturuyorum ve kağanışda da dispose ediyorum.Fakat picture kontrollerinin olduğu form açılırken çok fazla bir kasma meydana geliyor.Resim kutularını oluşturma kodlarını silince de normalleşiyor.Ve çok fazla bir RAM kullanmasına sebep oluyor galiba çünkü program tek başına 300 mb bir RAM tüketiyor.
    Acaba bu rami pictureboxlar mı tüketiyor.Şayet öyleyse wpf mi kullanmalıyım.Daha az bir ram kullanırmı acaba.Yardım ve tecrübelerinizi bekliyorum.Selametle...
    21 Kasım 2013 Perşembe 08:28

Yanıtlar

  • Anladığım kadarıyla, picturebox kodlarını kaldırdığında program normale dönüyorsa, kodlarında bir sorun var. Gereksiz yere çalışan kodlar olabilir, kısa yoldan sonuca ulaşmak yerine, yolu uzatmış olabilirsin. Dilersen kodlarını gönder, inceleyelim.
    • Yanıt Olarak İşaretleyen Özgür Tekbaş 27 Kasım 2013 Çarşamba 11:41
    21 Kasım 2013 Perşembe 09:04
    Moderatör

Tüm Yanıtlar

  • Anladığım kadarıyla, picturebox kodlarını kaldırdığında program normale dönüyorsa, kodlarında bir sorun var. Gereksiz yere çalışan kodlar olabilir, kısa yoldan sonuca ulaşmak yerine, yolu uzatmış olabilirsin. Dilersen kodlarını gönder, inceleyelim.
    • Yanıt Olarak İşaretleyen Özgür Tekbaş 27 Kasım 2013 Çarşamba 11:41
    21 Kasım 2013 Perşembe 09:04
    Moderatör
  •  Image[] imaj = {Resource1.Redüktör,Resource1.Pense ,Resource1.erro1 ,Resource1.Pense1 ,Resource1.Kalem,Resource1.Ölçüm ,Resource1.ÖlçümOk,Resource1.ÖlçümHata 
                           ,Resource1.amir ,Resource1.pokayok_glow0000,Resource1.self};            

    this.Top = 320;
                    this.Left = (Screen.PrimaryScreen.Bounds.Width - this.Width) / 2;
                    panel1.Visible = false;
                    panel2.SuspendLayout();

                    for (int u = 0; u < 8; u++)
                    {
                        Resim_Kutusu = new PictureBox();
                        Resim_Kutusu.Parent = panel2;
                        Resim_Kutusu.Size = new Size(270, 500);
                        Resim_Kutusu.Location = new Point(23, 20);
                        Resim_Kutusu.BorderStyle = BorderStyle.FixedSingle;
                        Resim_Kutusu.SizeMode = PictureBoxSizeMode.StretchImage;
                        //Resim_Kutusu.Image = Image.FromFile(Application.StartupPath + "\\" + Resimler[u]);
                        Resim_Kutusu.Image = imaj[u];
                        Resim_Kutusu.Visible = true;
                        Dizi_Resim[u] = Resim_Kutusu;
                    }
                    panel2.ResumeLayout();

                    panel1.SuspendLayout();
                    for (int u = 8; u < 11; u++)
                    {
                        Resim_Kutusu = new PictureBox();
                        Resim_Kutusu.Parent = panel1;
                        Resim_Kutusu.Size = new Size(680, 650);
                        Resim_Kutusu.Location = new Point(23, 20);
                        Resim_Kutusu.BorderStyle = BorderStyle.FixedSingle;
                        Resim_Kutusu.SizeMode = PictureBoxSizeMode.StretchImage;
                        Resim_Kutusu.Image = imaj[u];
                        //Resim_Kutusu.Image = Image.FromFile(Application.StartupPath + "\\" + Resimler[u]);
                        Dizi_Resim[u] = Resim_Kutusu;
                    }
                    panel1.ResumeLayout();
                    panel1.Visible = true;

                    IPAddress ipadr = IPAddress.Parse("192.168.1.5");
                    uint cevir = BitConverter.ToUInt32(ipadr.GetAddressBytes(), 0);

                    Cevap = (uint)DMT.OpenModbusTCPSocket(1, cevir);

                    Label[] _2Proses = { L0, L1, L2, L3, L4, L5, L6, L7, L8 };
                    for (int i = 0; i < _2Proses.Length; i++)
                    {
                        _2Proses[i].Visible = false;
                    }

    Bu kodlar bir thread ile çalışıyor form load olayında thread çağırıyorum.Normal derken pictureboxları yüklerken 2.sayfa labelleri felan gözükmüyor tam olarak üzerindeki kontroller meydana gelmiyor ilk bir kaç saniye sonra gözüküyor fakat pictureleri yüklemeyince normal açılıyor hemen sayfa.Teşekkürler....
    21 Kasım 2013 Perşembe 09:22