منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : تحذير تحذير من خطاء استهلاك الرام ( الذاكرة ) دون ان تدري
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم
سامحوني منشغل جدا
اليوم اكتشفت ان برنامجي يستهلك من الرام ما يقارب 200 ميجا ويتوقف البرنامج ويجبرك الويندوز علي اغلاقه

وبعد البحث في الكود بالكامل والجهد الجهيد اليكم المشكلة والحل

المشكلة كانت

عند انشاء كائن جديد

Dim dd As New TextBox

ثم اضافته مثلا الي بنل

Me.Panel1.Controls.Add(dd)

وذلك لعرض نتائج شئ معين

ثم اذا اردت ان اعرض نتيجة اخري قمت بتفريغ محتوي الـ Panel1 بهذا الشكل

Me.Panel1.Controls.Clear

هنا الخطاء هل تعلم ان dd لم يتم حذفه من الذاكرة وهو موجود وانا كنت اقوم بعض مئات النتائج بهذا الشكل وكان يظل المئات من العناصر محفوظه في الرام لم تنتهي بعد

وعالجت الامر باستبدال الكود

Me.Panel1.Controls.Clear

بكود اخر
كود :
For Each Obj As Object In Me.Panel1.Controls
                        Obj.Dispose()
                    Next

الحل هنا في الدالة Dispose فهي تقوم بتدمير الكائن نهائيا من الذاكرة وكان ليس له وجود من الاصل

كتبت الموضوع بسرعة جدا لاني والله منشغل جدا لاكن حبيت اتناقش معكم في هذا الموضوع لاهميته واتمني من الله تعالي ان الي عنده اي معلومات حول هذا الامر يفيدنا

وجزاكم الله خيرا
جزاك الله خيرا
تسلم على التوضيح

تصدق أول مره أدري انه ما يطير Dodgy

معلومه جيده ومفيدة Big Grin
بارك الله فيك
شكرا لك اخي ولكن ايه الجاربك تستخدم panal من الاساس ههههههه استخدم ادوات افضل ومن خلال تجربتي الشخصيه اصبح استخدم Telerik 2009 Q2
صراحه جميله وبراي اسرع من 2013
شئ ثاني لست الداله Dispose فقط نستخدمها في في مثل هذه الحالات ولكن اذا انشئت كلاس لا بد من تضمين الواجهه IDesposable للكلاس وكتابه الكود
PHP كود :
CG.Finalize(me
'vb.net Code 
وبكدة بتحافظ علي جوده برامج كلها ^_^
تحياتي
جزاك الله خيرا اخي smss علي التوضيح ارجو من حدرتك توضيح
ما اهي الاداة Telerik 2009 Q2 بحثن عنها ولم اجدها
وشرح بسيط لتضمين الواجهه IDesposable للكلاس وكتابه الكود
وجزاك الله خيرا
اه هههههه الادوات Telerik 2009 Q2 بحث ولم اجد روابط لتحميلها
انظر كل الروابط علي الرابيد شير ومحذوفة ارجو لو موجودة عند حدرتك ترفعها وجزاك الله خيرا
وبالنسبة للـ IDesposable هل تقصد مثل ما في الرابط هذا
شكــراً استـاذنا ,, احســنت وبارك الله فيك
طيب لقيت دي هل تمشي الحال
للعلم اذا كان عندك اصدار الفيجوال استديو 2008 ستجدها مباشرة في الصندوق الادوات اما غير ذلك لا بد من تضمينها بطريقه العاديه ^_^