मैं एक साक्षात्कार सवाल जो मैं जवाब (थोड़ी मदद :)) नहीं पता था भर में आया था में फंस अच्छी तरह से यह एक तरह से कुछ ने कहा:finalizer अनंत लूप
Class SomeClass : IDisposable
{
public void Dispose()
{
while(true)
{
}
}
~SomeClass()
{
Dispose();
}
}
1) वस्तु को अंतिम रूप दिया हो करता है अगली जीसी के बाद अब संदर्भित नहीं किया जाएगा? मेरा जवाब नहीं था, क्योंकि अंतिमकरण थ्रेड अनंत लूप पर फंस जाएगा।
2) क्या अंतिम रूप दिए जाने को समाप्त करने के निपटान में किया जा सकता है और इससे पहले कि वस्तु बाहर में लेने के समय यह अगले जनरल में खर्च करेगा)
खाते में साथ (निपटान किया जाता है पाश कितनी बार जारी रहेगामैं विशेष रूप से सटीक प्रश्न (2) से स्पष्ट नहीं हूं। 0 थोड़े समय से बाहर चला गया ...
उत्तर को नहीं जानते मैंने एक स्थिर काउंटर लगाया जो 3 तक पहुंच गया और ब्रेक कॉल किया और कहा 3 जो तकनीकी रूप से होगा काम :), लेकिन यह जवाब नहीं है
मैं इसे जीसी के साथ कुछ करने के लिए अनुमान लगा रहा हूं .SupressFinalize()? लूप में प्रवेश करने से पहले शायद GC.SupressFinalize() को कॉल कर रहा है?
अस्पष्ट प्रश्न के उत्तर पर नहीं, तो क्या कोई विचार है, जितना संभव हो सकता है कि वे क्या कर रहे हैं?
में जाने किसी भी तरह से से निपटाने विधि में मदद मिलेगी एक बूलियन चर का उपयोग कर इस एक जिज्ञासु साक्षात्कार सवाल यह है कि वस्तु के निपटाए राज्य के लिए जाँच कर सकते हैं - गहराई से जानकारी में है, जबकि जीसी एक वैध क्षेत्र सामान्य रूप में में प्रहार करने के लिए है के बारे में, मैं नहीं जानता कि क्या इस विशेष प्रश्न के लिए किसी भी सवाल का जवाब (वास्तव अलावा आप जानते हैं कि किसी एकल थ्रेड कि अंतिम रूप देने के कॉल करता है) साक्षात्कारकर्ता दिखाएगा – BrokenGlass