मुझे [कैनवास] [2] के बच्चों के रूप में बहुत सारे Shape (लगभग 1/2 सौ हजार) आकर्षित करना है। मैं इसे दो भागों में अपने डब्ल्यूपीएफ एप्लिकेशन को विभाजित करने में काम करता हूं: पहली बात यह है कि मैं उनमें से प्रत्येक के गुणों को सेट करके आकार बना देता हूं (जैसे मार्जिन, फिल, चौड़ाई, आदि ...), जब मैं कैनवास के बच्चों के रूप में आकार जोड़ता हूं।कैनवास प्रतिपादन प्रदर्शन में सुधार कैसे करें?
MyCanvas.Children.Add(MyShape)
अब मैं दूसरे भाग के प्रदर्शन में सुधार करना चाहते हैं, क्योंकि जब मैं आकार आकर्षित अपने आवेदन समय की एक लंबी अवधि के लिए अवरुद्ध है। इसलिए मैंने Dispatcher और इसकी विधि [BeginInvoke] [4] को विभिन्न [प्राथमिकताओं] [5] के साथ उपयोग करने का प्रयास किया: केवल अगर मैं पृष्ठभूमि प्राथमिकता का उपयोग करता हूं तो मुख्य अनुप्रयोग ब्लॉक नहीं होता है, अन्यथा एप्लिकेशन अवरुद्ध रहता है और "चित्र" तब तक प्रदर्शित नहीं होता जब तक कि सभी आकार मेरे कैनवास में जोड़े नहीं जाते हैं, लेकिन यदि मैं पृष्ठभूमि प्राथमिकता का उपयोग करता हूं तो स्पष्ट रूप से सब कुछ धीमा है। मैंने डिस्पैचर का उपयोग करने के बजाय एक नया धागा बनाने की भी कोशिश की, लेकिन इसमें कोई महत्वपूर्ण बदलाव नहीं आया।
मैं इस समस्या को कैसे ठीक कर सकता हूं, और जब मैं अपना आकार कैनवास में जोड़ता हूं तो आम तौर पर मेरे एप्लिकेशन के प्रदर्शन में सुधार कर सकता हूं?
धन्यवाद।
क्या आपने DrawingVisual की कोशिश की है? –
नहीं। क्या आप मुझे एलीपसे या पथ जैसे आकार के बजाय DrawingVisual का उपयोग करने का उदाहरण दे सकते हैं। उदाहरण के लिए, मैं अपने कैनवास में कैसे जोड़ सकता हूं [यह] (http://msdn.microsoft.com/en-us/library/ms745546.aspx) DrawingVisual का उपयोग करके पथ? – gliderkite
हां, Google पर कुछ अच्छी जानकारी है। शुरू करने के लिए यहां एक लिंक दिया गया है: http://msdn.microsoft.com/en-us/magazine/dd483292.aspx –