c# - Why use try {} finally {} with an empty try block? -


मैंने System.Threading.TimerBase.Dipose () में देखा है विधि में कोशिश {} अंत में {} ब्लॉक लेकिन कोशिश {} खाली है।

क्या {} का उपयोग करने में कोई मान है {} अंत {} खाली प्रयास के साथ?

  [विश्वसनीयता संपर्क (Consistency.WillNotCorruptState, Cer.MayFail)] आंतरिक बूल डिस्पोज़ करें (WaitHandle NotifyObject) {bool status = false; बूल बीएलॉकटैंक = झूठी; RuntimeHelpers.PrepareConstrainedRegions (); कोशिश {} अंततः {do {अगर (Interlocked.CompareExchange (ref m_lock, 1, 0) == 0) {bLockTaken = true; कोशिश {status = DeleteTimerNative (notifyObject.SafeWaitHandle); } अंत में {m_lock = 0; }} थ्रेड। स्पीनवाइट (1); // प्रोसेसर के लिए उपज} जबकि (! BLockTaken); GC.SuppressFinalize (this); } वापसी स्थिति; }  

से:

इस पद्धति गार्ड के खिलाफ थ्रेड। पोर्ट कॉल प्रसंस्करण में दखल। थ्रेड के एमएसडीएन पृष्ठ। एबर्ट का कहना है कि "अप्रत्याशित रूप से धागे समाप्त होने से पहले निष्कासित किए गए ब्लॉक को मार डाला जाता है"। तो यह सुनिश्चित करने के लिए कि आपका प्रसंस्करण खत्म हो गया है, भले ही आपका धागा किसी के द्वारा अपने धागे पर निरस्त करने के लिए बीच में निरस्त हो गया हो, आप अंत में ब्लॉक में अपना कोड डाल सकते हैं (वैकल्पिक "पकड़" ब्लॉक में कोड लिखना है निर्धारित करें कि आप कहां से पहले "कोशिश" बाधित किया गया था और वहां से आगे बढ़ें, यदि आप चाहते हैं)।


Comments

Popular posts from this blog

.net - C# List<T>.Find(x=>x.Rectangle.Contains(Point)) FAIL -

iphone - Smoothing a rounded stroke in Core Graphics -

c++ - QtQuick: QQmlApplicationEngine failed to load component qrc:/main.qml:23 Invalid attached object assignment -