عرض مشاركة واحدة
  #1  
قديم 02-26-2010, 04:17 PM
الصورة الرمزية khaledbelal
khaledbelal khaledbelal غير متواجد حالياً
مبرمج المنتدى
الادارة تكليف لا تشريف
 
تاريخ التسجيل: Oct 2009
العمر: 34
المشاركات: 3,606
افتراضي الدرس الثاني والأربعون : ال Gc دورة .net 2008

بسم الله الرحمن الرحيم .
السلام عليكم ورحمة الله وبركاته .

خلال دروسنا السابقة كنا نعرف متغيرات وفئات .. الخ ، ولكننا لم نسأل نفسنا كيف يتم تخزينها في الذاكرة ومتى يتم حذفها ، هذه الاسئلة سوف نجيب عليها في هذا الدرس من خلال مفاهيم ال Object lifetime وال GC .

عند تعريفك لكائن من فئة OBJECT FROM CLASS فإنك بالواقع تصبح ممسكاً ب refernce يشير إلى هذا الكائن الموجود في ال heap ، هذا ال reference يوجد ايضاً في stack خاص بالبرنامج .

بعد اغلاق البرنامج او انتهاء الدالة يتم حذف ال reference من ال stack ، سيكون التساؤل الطبيعي هو انه وفي هذه الحالة سوف تمتلئ الذاكرة بمئات الكائنات التي لا تجد من يشير لها ، يريحك ال garbage collector والذي يرمز له اختصاراً GC من هذا التساؤل حيث يقوم بحذف الفئات غير المستخدمة ، او في الحقيقة فهو يقوم بحذف جميع الفئات التي لم يعد بامكانك الوصول إليها من داخل البرنامج .

في ايام ال C++ كان من المفترض ان تقوم بحذف متغيراتك الغير مستخدمة اول بأول ، اما الآن مع GC فاصبحت جل المهام يتم تنفيذها دون ان تشعر .

الحالة الاكثر شيوعاً هي ان تقوم بعمل =null ، في الواقع هذا لا يعطي اشارة مباشرة لل GC لحذف كائنك من الذاكرة ، لكنه سيتم حذفه في لحظة ما لا يمكنك التحكم بها ، عندما تمتلئ الذاكرة مثلاً .

GC :

تحتوي الفئة GC على عدد من الداول التي تمكنك من التعامل المباشر معها ، هذه هي الدوال واستخداماتها :



Finalize() :

يمكنك هذا الحدث من اقتناص وقت حذف الكائن ، يمكنك عمل overridding له وتنفيذ بعض المهام قبل تدمير الكائن .

يتم ذلك بالشكل التالي :

C#:
كود PHP:
class example
{
~
example()
{
Console.Beep();
}

vb.net:
كود PHP:
Class example 
    
Protected Overrides Sub Finalize() 
        Try 
            
Console.Beep() 
        Finally 
            
My****.Finalize() 
        
End Try 
    
End Sub 
End 
Class 


توقيع : khaledbelal



(أَفَأَمِنَ أَهْلُ الْقُرَى أَن يَأْتِيَهُمْ بَأْسُنَا بَيَاتاً وَهُمْ نَآئِمُونَ {97} أَوَ أَمِنَ أَهْلُ الْقُرَى أَن يَأْتِيَهُمْ بَأْسُنَا ضُحًى وَهُمْ يَلْعَبُونَ {98}
أَفَأَمِنُواْ مَكْرَ اللّهِ فَلاَ يَأْمَنُ مَكْرَ اللّهِ إِلاَّ الْقَوْمُ الْخَاسِرُونَ {99}).
سورة الأعراف.

رد مع اقتباس