
GC.Collect שש פעמים והציגו את הדור אחרי כל קריאה. אחר כך הכניסו null לאובייקט ובדקו אם עדיין אפשר להציג את הדור.Collect כמה פעמים והשוו את הספירה למספר הקריאות. אם אינכם יודעים איך, חפשו בגוגל.Test עם destructor שמדפיס הודעה. ב-Main יוצרים אובייקט, מציבים null ומריצים Console.ReadLine. ה-destructor רץ רק בסיום התוכנית, ולכן יש למצוא מה לכתוב במקום ההערות כדי שירוץ לפני ה-ReadLine.Main הערך של Thread.CurrentThread.ManagedThreadId הוא 1, ובתוך thread שיצרתם 3. מספר 2 אמור להיות שייך ל-GC. כיצד אפשר להוכיח זאת?byte בגודל 80,000 נמצא בדור 0. במערך בגודל 85,000 הדור שונה. חפשו את המונח large object heap והסבירו מה קרה.הטקסט המלא של הדקות הראשונות בהרצאה «תרגילים על Garbage Collector» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
גילים בנושא הגארבג' קולקטור. עצרו אובייקט מטיפוס נתונים כלשהו, לא משנה איזה, והציגו את הג'נריישן שלו. בצעו קריאה לפונקציה קולקט של הגארבג' קולקטור שש פעמים, ובכל פעם תציגו את הג'נריישן של אותו אובייקט אחרי כל קריאה.
לאחר מכן הכניסו נ"ל לתוך האובייקט שלכם, האם אתם עכשיו מסוגלים להציג את הג'נריישן שלו. הציגו כמה זיכרון נמצא בשימוש על ידי הגרבץ' קולקטור.
הציגו כמה פעמים הגרבץ' קולקטור ביצע פעולה או ביצע קולקט של הזיכרון. בצעו קריאה לקולקט של הגרבץ' קולקטור כמה פעמים והציגו שוב כמה פעמים הגרבץ' קולקטור ביצע קולקט.
בדקו האם זה מסתדר עם מספר הקריאות שעשיתם. אם אתם לא יודעים איך עושים את זה פשוט חפשו בגוגל איך ניתן לדעת כמה זיכרון הגארבץ' קולקטור משתמש, ואיך ניתן לדעת כמה פעמים הגארבץ' קולקטור ביצע ניקוי של הזיכרון.
יצרו מחלקה בשם test שמכילה דיסטרקטור. בתוך הדיסטרקטור הציגו איזושהי הודעה על הקונסול. במיין כתבו את הקוד הבא: test t=new test, t=null, איזשהם הערה או הערות, ו-consol.readline.
אם אתם מריצים את התוכנית הזאת, אתם יכולים לראות שהדיסטרקטור לא יתבצע לפני הקונסול רידליין, אלא רק אחרי הקונסול רידליין כאשר התוכנית מסתיימת.
מה אתם יכולים לעשות במקום ההערות בכדי שהדיסטרקטור כן יתבצע לפני הקונסול רידליין? צרו קונסול אפליקיישן ובתוכו, בתוך המיין שלו, הציגו את הפרופרטי הבא:
thread.currentthread.managedthreadid. המספר אמור להיות 1. צרו thread והפעילו בעזרתו איזושהי פונקציה. בתוך הפונקציה, שוב פעם, תציגו את הפרופרטי הזה.