2011-12-19 14 views
7

SynchronizationContext में IsWaitNotificationRequired नामक एक संपत्ति है। इसके उद्देश्य से, docs में यह कहना है:सिंक्रनाइज़ेशन कॉन्टेक्स्ट.इस्वाइट नोटिफिकेशन क्या है?

निर्धारित करता है कि प्रतीक्षा अधिसूचना की आवश्यकता है या नहीं।

सत्य अगर प्रतीक्षा अधिसूचना आवश्यक है; अन्यथा, झूठी।

गोश, जो चीजों को स्पष्ट करता है।

यह "प्रतीक्षा अधिसूचना" वास्तव में क्या है, और इसकी आवश्यकता कब/आवश्यकता होगी? IsWaitNotificationRequiredControl.InvokeRequired की रेखाओं के साथ कुछ है, या यह कुछ अलग है?

+0

यह उत्तर सहायक हो सकता है: http://stackoverflow.com/a/5109784/245183 –

+0

@OndrejTucny, मुझे यकीन नहीं है कि उस उत्तर को क्या करना है ... क्या इसका मतलब यह है कि यह आपको निर्दिष्ट करता है कि कौन सी WinAPI कॉल 'मॉनिटर.इंटर' और 'मॉनीटर.एक्सिट' वास्तव में लॉक पर इंतजार करने के लिए उपयोग करते हैं? क्या होता है जब 'IsWaitNotificationRequired' गलत है? –

+0

आंतरिक WaitHelper() विधि कुंजी है, यह सीएलआर के अंदर हैंडल प्रतीक्षा कोड को आमंत्रित करती है जो COM एकल थ्रेडेड अपार्टमेंट के लिए सुरक्षित है। यह एक संदेश लूप पंप करता है, यह थ्रेड एसटीए है यह सुनिश्चित करने के लिए कि प्रतीक्षा डेडलॉक का कारण नहीं बनती है। डब्ल्यूपीएफ की जरूरत है। MsgWaitForMultipleObjects() की समीक्षा करें। –

उत्तर

1

यह आधारभूत संरचना के लिए है जो सीएलआर सिंक्रनाइज़ेशन प्रतीक्षा दिनचर्या में हुकिंग की अनुमति देता है। इस ब्लॉग पोस्ट यह कैसे काम करता बताते हैं: http://www.bluebytesoftware.com/blog/PermaLink,guid,710e6ba3-60e9-4f5e-a5a7-d878015c7a16.aspx

यह गुण हमेशा false वापस आ जाएगी किया गया है, तो इस व्यवहार विशेष रूप से SynchronizationContext का एक उपवर्ग में अधिरोहित नहीं किया है और Wait विधि के अपने ओवरराइड कार्यान्वयन बुलाया जाता है, तो यह करता है।

+0

लिंक टूटा हुआ है :-( –

संबंधित मुद्दे