C# में IDisposable इंटरफ़ेस का सही उपयोग: मेमोरी लीक से कैसे बचें?
सभी को नमस्ते! मैं एक शुरुआती C# डेवलपर हूँ और IDisposable इंटरफ़ेस को समझ नहीं पा रहा हूँ। मैंने दस्तावेज़ीकरण पढ़ा, लेकिन व्यवहार में अभी भी प्रश्न उठते हैं।
मेरे पास एक क्लास है जो फ़ाइलों और नेटवर्क कनेक्शनों के साथ काम करती है। मैंने IDisposable को लागू किया, लेकिन मुझे यकीन नहीं है कि मैं इसे सही तरीके से कर रहा हूँ। यहाँ मेरे कोड का उदाहरण है:
public class FileProcessor : IDisposable
{
private FileStream _fileStream;
private NetworkStream _networkStream;
private bool _disposed = false;
public void ProcessFile(string path)
{
_fileStream = new FileStream(path, FileMode.Open);
// कुछ प्रोसेसिंग
}
public void Dispose()
{
if (_fileStream != null)
_fileStream.Dispose();
if (_networkStream != null)
_networkStream.Dispose();
}
}
मैं मैन्युअल रूप से Dispose() को कॉल करता हूँ, लेकिन मैंने सुना है कि Dispose(bool) पैटर्न का उपयोग करना चाहिए। साथ ही मुझे यह भी भ्रमित करता है:
1. क्या GC.SuppressFinaliz को कॉल करना आवश्यक है?