मेरी WPF आवेदन में, मैं एक ईवेंट हैंडलर मेरी यूआई तत्व की mouseenter घटना पर कहा जाता है कि है:थ्रॉटल एक घटना हैंडलर
myUiElement.MouseEnter += myEventHandler
मैं myEventHandler थ्रोटल चाहते हैं तो यह अधिक नहीं कहा जाता हो जाता है हर सेकेंड से एक बार। मैं यह कैसे कर सकता हूँ? क्या आरएक्स सिर्फ इसके लिए सबसे अच्छा दृष्टिकोण है? मैं .NET 4.0 का उपयोग कर रहा हूं यदि यह एक फर्क पड़ता है।
इसके अलावा, मुझे यह सुनिश्चित करने की ज़रूरत है कि माउसलीव ईवेंट हमेशा अगले माउसइंटर ईवेंट से पहले कॉल हो जाए; क्या मुझे इसे अपने आप प्रबंधित करने की ज़रूरत है? या पहले से ही ढांचा तैयार किया गया है ताकि माउसलेव घटनाओं को हमेशा अगले माउसइंटर घटना से पहले बुलाया जा सके? अगर मेरे पास इन ईवेंट हैंडलर में एसिंक्रोनस कोड है तो क्या होगा?
क्या आपको वास्तव में इसे बिल्कुल नहीं बुलाया जाना चाहिए, या क्या आप अंतिम विधि के बहुत करीब थे अगर आप अपनी विधि में तत्काल वापसी कर सकते हैं? – siride
मैं इसे थ्रॉटल करना चाहता था इसलिए उपयोगकर्ता थ्रेड को बोझ नहीं करता है अगर उपयोगकर्ता सबकुछ पर माउस को स्पैम करता है (मेरे पास कई यूआई तत्व हैं जो एक ही ईवेंट हैंडलर होंगे); लेकिन मुझे लगता है कि मैं ऐसा कर सकता हूं अगर यह वास्तव में थ्रॉटलिंग से अधिक कुशल है .. – Darius
थ्रॉटलिंग का कोई भी तंत्र आखिरकार एक if-statement और निष्पादन जारी रखने या निरस्त करने का विकल्प शामिल करने जा रहा है। आप वास्तव में उस के आसपास नहीं मिल सकते हैं। – siride