मैंने एक क्लास लाइब्रेरी बनाई है जो कुछ जियोप्रोसेसिंग करती है। Addin एक वर्ग को कॉल करता है जो एक async प्रक्रिया है। मैंने यह सुनिश्चित कर लिया है कि धागा STA है और आर्कोबेजेक्ट्स थ्रेड सेफ हैं (यानी एडिन से पास नहीं हुए हैं)। सभी आर्कोबजेक्ट्स धागे के भीतर बनाए गए हैं।
क्योंकि यह एक क्लास लाइब्रेरी है जिसे मैंने इसे winforms UI में और एडिन के रूप में भी लपेटा है। कोड के दोनों सेट बिल्कुल समान हैं और सटीक समान डेटा का उपयोग करके परीक्षण किए गए थे। Winforms और addin दोनों वांछित परिणामों के साथ कोड को पूरा करते हैं और कोई मेमोरी लीक स्पष्ट नहीं है। एडिन के मामले के लिए इस बिंदु पर नक्शा अवधि के साथ कोई इंटरैक्शन नहीं है और वाइनफॉर्म कोड में कोई भी मैपिंग या प्रदर्शन तत्व नहीं हैं।
केवल UI अद्यतन एडिन और UI दोनों में प्रगति संवाद का अद्यतन हैं। Addin एक dockable विंडो (उपयोगकर्ता नियंत्रण यूआई) का उपयोग कर रहा है।
मुद्दा मैं देख रहा हूँ जब लाइब्रेरी को एडिन से पुकारा जाता है, तो कोड निष्पादन 5 गुना धीमा होता है, उसी कोड की तुलना में जिसे winforms एप्लिकेशन के माध्यम से बुलाया जाता है।
कोई भी विचार जहाँ मैं देख सकता हूँ कि ऐसा क्यों हो रहा है?
Activator.CreateInstance
, या साथ बना रहे हैं new
?