मैं समझने की कोशिश कर रहा हूं कि ईवेंट लूप क्या है। अक्सर स्पष्टीकरण यह होता है कि किसी ईवेंट लूप में, आप तब तक कुछ करते हैं जब तक आपको सूचित न कर दिया जाए कि कोई ईवेंट हुआ है। आप तब घटना को संभालते हैं और वही करते रहते हैं जो आप पहले कर रहे थे।
एक उदाहरण के साथ उपरोक्त परिभाषा को मैप करने के लिए। मेरे पास एक सर्वर है जो एक ईवेंट लूप में 'सुनता है', और जब एक सॉकेट कनेक्शन का पता लगाया जाता है, तो इससे प्राप्त डेटा को पढ़ा और प्रदर्शित किया जाता है, जिसके बाद सर्वर फिर से शुरू होता है / सुनने लगता है जैसा कि उसने पहले किया था।
हालाँकि, यह घटना हो रही है और हमें 'ठीक वैसे ही' नोटिफाई किया जा रहा है ताकि मुझे संभालना पड़े। आप कह सकते हैं: "यह उस तरह नहीं है जैसे कि 'आपको एक घटना श्रोता को पंजीकृत करना है"। लेकिन क्या एक घटना श्रोता है, लेकिन एक समारोह है जो किसी कारण के लिए वापस नहीं है। क्या यह स्वयं का लूप है, किसी घटना के होने पर अधिसूचित होने की प्रतीक्षा करना? क्या इवेंट श्रोता को भी इवेंट श्रोता को पंजीकृत करना चाहिए? यह कहाँ समाप्त होता है?
घटनाओं के साथ काम करने के लिए एक अच्छा अमूर्त है, लेकिन सिर्फ एक अमूर्त है। मेरा मानना है कि अंत में, मतदान अपरिहार्य है। शायद हम इसे अपने कोड में नहीं कर रहे हैं, लेकिन निचले स्तर (प्रोग्रामिंग भाषा कार्यान्वयन या ओएस) हमारे लिए कर रहे हैं।
यह मूल रूप से निम्न छद्म कोड के लिए आता है जो कहीं कम चल रहा है, इसलिए यह व्यस्त प्रतीक्षा में परिणाम नहीं करता है:
while(True):
do stuff
check if event has happened (poll)
do other stuff
यह पूरे विचार की मेरी समझ है, और मैं यह सुनना चाहूंगा कि क्या यह सही है। मैं यह स्वीकार करने में खुला हूं कि पूरा विचार मौलिक रूप से गलत है, इस मामले में मैं सही स्पष्टीकरण चाहूंगा।
EventSource
यदि कीबोर्ड इनपुट पोल नहीं कर रहा है तो क्या कर रहा है?