בית התפתחות מה מסיים? - הגדרה מטכנולוגיה

מה מסיים? - הגדרה מטכנולוגיה

תוכן עניינים:

Anonim

הגדרה - מה המשמעות של סיום?

Finalize היא שיטת אובייקט המכילה את הקוד הנדרש לשחרור משאבים לא מנוהלים וביצוע פעולות ניקוי לפני איסוף הזבל (GC).


שיטת הסיום משמשת לניקוי משאבים שלא מנוהלים על ידי .NET. למרות שמסגרת ה- NET מיועדת לשחרר משאבים מנוהלים על ידי ביצוע משימות ניהול זיכרון באופן מרומז, יש לשחרר במפורש משאבי יישומים לא מנוהלים - כמו ידיות קבצים וחיבורי מסד נתונים.

Techopedia מסביר סופית

בעוד ש- finalize נועד להתקשר באופן מרומז על ידי GC, שיטת הניתוק עשויה להיקרא במפורש על ידי קוד משתמש כדי לפנות משאבים.


סיום זה דומה להרס C ++ מסורתי, מכיוון שכל אחד אחראי לשחרור משאבי אובייקט. הרס C ++ מבוצע באופן מיידי כאשר אובייקט יוצא מהיקפו, ואילו סיום נקרא במהלך ניקוי האובייקטים ב- GC. ב- C #, לא ניתן לכנות או לבטל את הסיום באופן ישיר. אם מוכרז על הרס, הוא מומר לשיטת הסיום בעת עריכת התוכנית.


במהלך הסיום, יש להימנע מהקצאת זיכרון או משימוש בשיטות וירטואליות. יש להגן על היקף הסיום כך שניתן לגשת אליו רק באותה מחלקה או בכיתה הנגזרת שלה. סופי לא אמור להתייחס לאובייקטים אחרים. ב- C #, קריאה לסיים ישירות על אובייקט שאינו מחלקת הבסיס שלו היא פעולה לא חוקית. קוד הסיום צריך להיות מינימלי ללא שיחות שמסוגלות לחסום את חוט השיחות. כפי שסופי נקרא על ידי חוט ייעודי, קודו לא אמור להשתמש באחסון מקומי של חוט או בכל טכניקה הדורשת זיקה לחוט.


השימוש בסיום כמנגנון fallback לשחרור זיכרון או משאבים בלתי מנוהלים הוא חיוני, בגלל היעדר דטרמיניזם והשפעות על ביצועי ה- GC.

הגדרה זו נכתבה בהקשר של .NET
מה מסיים? - הגדרה מטכנולוגיה