यह एक सामान्य विषय है, इवेंट हैंडलर्स कैसे काम करते हैं?
यह पर्दे के पीछे का मतलब है - जब वे बनते हैं तो क्या होता है।
मेरे पास एक मोटा विचार है - लेकिन मैं इसकी पुष्टि करना चाहता हूं।
यह एक सामान्य विषय है, इवेंट हैंडलर्स कैसे काम करते हैं?
यह पर्दे के पीछे का मतलब है - जब वे बनते हैं तो क्या होता है।
मेरे पास एक मोटा विचार है - लेकिन मैं इसकी पुष्टि करना चाहता हूं।
जवाबों:
एक निम्न-स्तर पर, इवेंट हैंडलर अक्सर एक उपकरण को मतदान करके और एक हार्डवेयर व्यवधान की प्रतीक्षा में काम करते हैं । अनिवार्य रूप से, एक बैकग्राउंड थ्रेड ब्लॉक होता है, जबकि एक हार्डवेयर इंटरप्ट होने की प्रतीक्षा करता है। जब कोई व्यवधान उत्पन्न होता है, तो पोल फ़ंक्शन अवरुद्ध होना बंद हो जाता है। तब एप्लिकेशन पता लगा सकता है कि किस डिवाइस के हैंडल में रुकावट आई, और यह किस प्रकार का व्यवधान था, और फिर उसी के अनुसार कार्य करें (जैसे किसी ईवेंट हैंडलर फ़ंक्शन को लागू करके)। यह आमतौर पर एक अलग थ्रेड में किया जाता है ताकि यह एसिंक्रोनस रूप से हो।
बेशक, जिस तरह से इसे वास्तव में लागू किया गया है वह ओएस और डिवाइस / इनपुट के प्रकार पर निर्भर करता है। UNIX प्रणालियों पर, एक तरह से जो इवेंट हैंडलर को सॉकेट, सीरियल या यूएसबी पोर्ट जैसी चीजों के लिए लागू किया जाता है, चुनिंदा या पोल सिस्टम कॉल के माध्यम से होता है । एक या एक से अधिक फ़ाइल / डिवाइस डिस्क्रिप्टर (जो डिवाइस से जुड़े होते हैं, जैसे नेटवर्क सॉकेट, सीरियल / यूएसबी पोर्ट, आदि) poll
सिस्टम कॉल को पास कर दिए जाते हैं - जो निम्न-स्तरीय सी एपीआई के माध्यम से प्रोग्रामर को उपलब्ध कराया जाता है। जब इन उपकरणों में से एक पर एक घटना होती है, (जैसे कहते हैं, कुछ डेटा एक सीरियल पोर्ट पर आता है), तो पोल सिस्टम कॉल ब्लॉक होना बंद हो जाता है, और एप्लिकेशन तब यह निर्धारित कर सकता है कि किस डिवाइस के डिस्क्रिप्टर ने ईवेंट का कारण बनाया, और यह किस प्रकार का ईवेंट था। ।
विंडोज पर यह अलग तरह से संभाला जाता है, लेकिन अवधारणाएं मूल रूप से समान हैं।