Junior — Middle
Dasturlashda Dispose naqshasi nima ekanligini tushuntirib bera olasizmi?
sobes.tech AI
AIdan javob
Dasturiy ta'minotda Dispose naqshasi, ayniqsa C# da, boshqarilmaydigan resurslarni (masalan, fayl deskriptorlari, ma'lumotlar bazasi ulanishlari, soketlar) to'g'ri bo'shatish uchun ishlatiladi.
C# da bu uchun IDisposable interfeysini amalga oshiriladi va unda Dispose() metodi mavjud. Bu metod chaqirilganda, ob'ekt endi kerak bo'lmaganda resurslarni aniq bo'shatadi.
Foydalanish misoli:
class ResourceHolder : IDisposable
{
private bool disposed = false;
private IntPtr unmanagedResource; // boshqarilmaydigan resurs misoli
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this); // finalizator chaqirilishini oldini oladi
}
protected virtual void Dispose(bool disposing)
{
if (!disposed)
{
if (disposing)
{
// Boshqariladigan resurslarni bo'shatish
}
// Boshqarilmaydigan resurslarni bo'shatish
CloseHandle(unmanagedResource);
unmanagedResource = IntPtr.Zero;
disposed = true;
}
}
~ResourceHolder()
{
Dispose(false);
}
}
Shu tarzda, Dispose naqshasi resurslarni bo'shatish vaqtini nazorat qilishga yordam beradi va xotira oqib ketishlari yoki blokirovkalarni oldini oladi.