У дома развитие Какво е финализиране? - определение от техопедия

Какво е финализиране? - определение от техопедия

Съдържание:

Anonim

Определение - Какво означава Finalize?

Finalize е обект метод, който съдържа кода, необходим за освобождаване на неуправляеми ресурси и извършване на операции за почистване преди събирането на боклука (GC).


Методът за финализиране се използва за почистване на ресурси, които не се управляват от .NET. Въпреки че .NET рамката е проектирана да освобождава управлявани ресурси чрез неявно изпълнение на задачи за управление на паметта, неуправляемите приложения за приложения - като дръжки за файлове и връзки към база данни - трябва да бъдат изрично освободени.

Техопедия обяснява Финализиране

Докато финализирането е проектирано така, че да бъде имплицитно извикан от GC, методът на разпореждане може да бъде изрично извикан от потребителски код за освобождаване на ресурси.


Finalize е подобен на традиционните C ++ деструктори, тъй като всеки е отговорен за освобождаването на ресурсите на обекта. C ++ деструкторите се изпълняват веднага, когато обектът излезе извън обхвата, докато финализирането се извиква по време на почистване на обекта в GC. В C #, финализирането не може да бъде директно извикано или отменено. Ако деструктор е деклариран, той се преобразува в метода за финализиране, когато програмата се компилира.


По време на финализирането трябва да се избягва разпределението на паметта или извикването на виртуални методи. Обхватът на финализиране трябва да бъде защитен така, че да се осъществява достъп до него само в същия клас или в неговия производен клас. Финализирането не трябва да се отнася за други обекти. В C # извикването на финализиране директно върху обект, различен от базовия му клас, е невалидна операция. Кодът за финализиране трябва да бъде минимален без никакви обаждания, които могат да блокират нишката за повикване. Тъй като финализирането се извиква от специална нишка, неговият код не трябва да използва локално съхранение на нишки или каквато и да е техника, изискваща афинитет на нишката.


Използването на финализиране като резервен механизъм за освобождаване на неуправляема памет или ресурси е от съществено значение поради липса на детерминизъм и ефекти върху работата на GC.

Това определение е написано в контекста на .NET
Какво е финализиране? - определение от техопедия