Pat mūsu programmā tā nevar palaist pabeigšanas metodi visiem 3 pavedieniem. “Šī metode ir pēc būtības nedroša Tā rezultātā dzīvajiem objektiem var tikt izsaukti pabeigtāji, kamēr citi pavedieni vienlaikus manipulē ar šiem objektiem, izraisot nepareizu darbību vai strupceļu.”
Kāpēc ir jāizvairās no pabeigšanas metodes C?
Objekta metode Finalize nedrīkst izsaukt metodi nevienā objektā, izņemot tā bāzes klases objektu. Tas ir tāpēc, ka citus objektus, kas tiek izsaukti, var savākt vienlaikus ar izsaucošo objektu, piemēram, parastās valodas izpildlaika izslēgšanas gadījumā.
Vai mums vajadzētu ignorēt pabeigšanas metodi?
Metode finailze ir jāiznīcina, lai objekts iekļautu tīrīšanas kodu vai atbrīvotos no sistēmas resursiem, kas būtu jādara pirms objekta savākšanas.
Kas notiek, ja izņēmums tiek piešķirts, izmantojot Finalizēšanas metodi?
Ja ar pabeigšanas metodi tiek izmests nenotverts izņēmums, izņēmums tiek ignorēts un šī objekta pabeigšana tiek pārtraukta. … Jebkurš izņēmums, ko rada pabeigšanas metode, izraisa šī objekta pabeigšanas apturēšanu, bet citādi tiek ignorēta.
Kāds ir pabeigšanas metodes mērķis?
Objektu klases pabeigšanas metode ir metode, kuru Atkritumu savācējs vienmēr izsauc tieši pirms tā objekta dzēšanas/iznīcināšanas, kas ir piemērots atkritumu savākšanai, lai veiktu tīrīšanas darbību.