Obsah
- Definice - Co znamená Dispose?
- Úvod do Microsoft Azure a Microsoft Cloud | V této příručce se dozvíte, o čem cloud computing je a jak vám může Microsoft Azure pomoci migrovat a řídit podnikání z cloudu.
- Techopedia vysvětluje Dispose
Definice - Co znamená Dispose?
V con of C # je dispose metoda objektu vyvolána ke spuštění kódu vyžadovaného pro vyčištění a uvolnění paměti a resetování nespravovaných prostředků, jako jsou popisovače souborů a připojení k databázi. Dispose zlepší výkon a optimalizuje paměť uvolněním nezvládnutelných objektů a omezených zdrojů, jako jsou úchyty Graphics Device Interface (GDI) používané v aplikacích s omezeným prostorem Windows.
Metoda Dispose poskytovaná rozhraním IDisposable implementuje Dispose calls. Vzor Dispose je navržen pro včasné a předvídatelné vyčištění, prevenci dočasných úniků paměti a likvidaci zdrojů.
Úvod do Microsoft Azure a Microsoft Cloud | V této příručce se dozvíte, o čem cloud computing je a jak vám může Microsoft Azure pomoci migrovat a řídit podnikání z cloudu.
Techopedia vysvětluje Dispose
Framework .NET usnadňuje sběr odpadků (GC), spravuje paměť objektů a prostředky a získává neplatné odkazy na objektové paměti vyvoláním Finalize - nedeterministická metoda. Metoda Dispose řídí životnost instancí paměti objektů a poskytuje explicitní řízení čištění paměti versus finalizuje implicitní čištění paměti. Dispose může být vyvoláno, i když existují jiné instance objektu paměti, zatímco Finalizace může být vyvolána až po zničení posledního objektu paměti.
Pravidla metody likvidace jsou následující:
- Používá se pro nespravované prostředky vyžadující okamžité uvolnění po použití.
- Pokud není zavolána funkce Dispose, měla by být implementována metoda Finalize.
- Po vyvolání metody Dispose musí být volána metoda GC.SuppressFinalize, aby se odvrátila metoda Finalize a zabránilo se zbytečné GC.
- Výjimky by měly být pečlivě zpracovány, pokud je metoda Dispose vyvolána vícekrát. Pokud jsou prostředky zlikvidovány, může jakákoli metoda instance vyvolat ObjectDisposedException.
- Objekt s dříve nazvanou metodou Dispose nelze znovu použít.
- Dispose se doporučuje pouze pro správu objektů nativních prostředků a objektů COM (Component Object Model) vystavených rozhraní .NET Framework.
- Likvidace nemusí být vyvolána souběžně z více vláken, a to z důvodu nepředvídatelných výsledků.
- Typy hodnot by neměly být vytvářeny jako jednorázové typy nebo s nespravovanými členy prostředků.
- Při použití nespravovaných prostředků se považuje za nejlepší postup použít zdrojové kódy Použití příkazu, který automaticky vyvolá metodu Dispose po dokončení kódu objektu.