2009-09-21 7 views
12

मैं हाल ही में एक परियोजना पर कुछ काम कर रहा हूं जो घटनाओं का व्यापक उपयोग करता है। उन चीजों में से एक जो मुझे करने की ज़रूरत है, एक मल्टीकास्ट प्रतिनिधि पर असीमित रूप से एकाधिक ईवेंट हैंडलर को कॉल करें। मैंने सोचा कि यह चाल GetInvocationList से प्रत्येक आइटम पर BeginInvoke को कॉल करने के लिए होगी, लेकिन ऐसा प्रतीत होता है कि BeginInvoke वहां मौजूद नहीं है।असिंक्रोनस मल्टीकास्ट प्रतिनिधि

क्या ऐसा करने का कोई तरीका है या मुझे थ्रेडपूल का उपयोग शुरू करने की आवश्यकता है। QueueUserWorkItem और इस प्रकार अपना खुद का समाधान रोल करें?

उत्तर

19

GetInvocationList बस Delegate टाइप करें जो उचित हस्ताक्षर नहीं जानता है। हालांकि, आप प्रत्येक विशिष्ट मूल्य को अपने विशिष्ट प्रतिनिधि प्रकार में डाल सकते हैं:

foreach (MyDelegate action in multicast.GetInvocationList()) 
{ 
    action.BeginInvoke(...); 
} 
+0

डी ओह! बेशक! बहुत बहुत धन्यवाद, जॉन। :) –