2011-04-17 18 views
8

मेरे पास एक स्टैंडअलोन WPF एप्लिकेशन .NET 3.5 पर चल रहा है। हर बार, प्रदर्शन बस कई सेकंड के लिए जमा हो जाता है। यह उन स्क्रीन पर सबसे ज्यादा ध्यान देने योग्य है जहां अक्सर कुछ अपडेट किया जा रहा है। Here is a video समस्या दिखा रहा है।डब्ल्यूपीएफ अस्थायी प्रदर्शन फ्रीज

जबकि प्रदर्शन जमे हुए है, इंटरफेस उत्तरदायी रहता है (video)।

मैं ऐसी अन्य समस्याओं के साथ कुछ अन्य पोस्टों में आया हूं जिन्होंने इसे एक एसडब्ल्यू/एचडब्ल्यू प्रतिपादन मुद्दे के लिए जिम्मेदार ठहराया है। सुरक्षित होने के लिए, मैंने पूरी तरह से एचडब्ल्यू प्रतिपादन अक्षम कर दिया, लेकिन अभी भी समस्या है।

मैंने फ्रीज के दौरान एक फ़ाइल मॉनिटर चलाया ताकि यह देखने के लिए कि क्या कुछ असाधारण फ़ाइल पहुंच या गतिविधि चल रही है, लेकिन सामान्य से कुछ भी बाहर नहीं है।

अंतिम नोट: लक्ष्य प्लेटफ़ॉर्म एक छोटी टच-स्क्रीन पैनल पीसी है जिसमें बहुत मेमोरी या हॉर्स पावर (512 एमबी) है। मुझे केवल लक्ष्य पर यह समस्या दिखाई देती है, कभी भी मेरे विकास पीसी पर नहीं, जो संसाधनों के रास्ते में बहुत अधिक है।

अद्यतन

मैंने सोचा कि मैं कुछ एनीमेशन कोड को हटाने के द्वारा समस्या का समाधान हो गया था, लेकिन यह काम नहीं किया। मुझे अभी भी समस्या का सामना करना पड़ रहा है और मैं अपनी रस्सी के अंत में हूं।

यहाँ कुछ और बातें मैंने कोशिश की है या नहीं:

  • .NET 4.0 में अपग्रेड किया गया। वही व्यवहार
  • यह सुनिश्चित करने के लिए कि उनमें से कोई भी यूआई धारण नहीं कर रहा है, डिस्पैचर टिमर (जिसे यूआई थ्रेड पर कहा जाता है) के माध्यम से लागू किए जा सकने वाले सभी तरीकों के लिए डीबग कोड जोड़ा गया है।

मैं वास्तव में यहां फंस गया हूं और एक बक्षीस जोड़ा है। जैसा कि मैंने उल्लेख किया है, समस्या केवल लक्ष्य पीसी (link) पर होती है।

+0

अपने ओएस और वीडियो कार्ड क्या है में स्मृति रिसाव तय? –

+0

@FractalizeR - यह पीसी है, लेकिन मैं एक कस्टम विंडोज एम्बेडेड मानक छवि का उपयोग कर रहा हूँ। http://www.icpamerica.com/products/LCD_products/embedded_panel_PC/afl_057a_lx.html – BabaBooey

उत्तर

1

अपराधी निम्नलिखित विधि फोन था। यह कार्य-आसपास here पाया जा सकता है।अगर मैं इस कॉल को हटा देता हूं, तो प्रतिपादन समस्याएं दूर हो जाती हैं।

मैं कॉल बाहर ले गई और एक और तरीका (स्टोरीबोर्ड एनीमेशन को दूर करने और पीछे के बजाय कोड का प्रयोग करके)

1

क्या आपने परीक्षण प्रणाली पर आवेदन को प्रोफाइल करने का प्रयास किया था? एक स्मृति और/या प्रदर्शन प्रोफाइलर का उपयोग करना?

आप परीक्षण के इस प्रकार के बाहर कुछ अच्छी जानकारियां मिल सकता है: WPF के लिए some .Net profilers और यहाँ है एक: WPF profiler from microsoft

2

मैं या तो नेट जीसी या ओएस swapfile शक करने के लिए जब इस तरह का व्यवहार दिखाता करते हैं।

पूर्व के लिए, आप संदिग्ध गतिविधि की निगरानी के लिए .NET प्रदर्शन काउंटर का प्रयास कर सकते हैं।

यदि डिवाइस में एक स्वैप फ़ाइल है, तो आप इसे अक्षम कर सकते हैं और देख सकते हैं कि व्यवहार बदलता है या नहीं।

जैसा कि अन्य ने कहा है, एक प्रोफाइलर (या जो कुछ भी स्थिति को अलग करता है, वह देरी को प्रेरित कर रहा है - यहां तक ​​कि जब यह होता है तो डीबगर को जोड़ना और तोड़ना) अधिक जानकारी प्राप्त करने का एक अच्छा तरीका होगा।

new HwndSource(new HwndSourceParameters()); 

यह मेरा आवेदन करने के लिए जोड़ा गया था क्योंकि यह .NET 3.5 में एक स्मृति रिसाव समस्या समझौता:

+0

जबकि व्यवहार प्रदर्शित होता है मैं कुछ प्रदर्शन उपकरण चलाने के लिए और साधारण (चींटियों प्रदर्शन प्रोफाइलर और ड्रिलिंग) से बाहर कुछ भी नहीं पाया है। मैं स्वैप फ़ाइल की स्थिति की जांच करूंगा। मेरे पास लक्ष्य पर विजुअल स्टूडियो के लिए कमरा नहीं है, इसलिए मुझे दूरस्थ डिबगिंग चलाना होगा। – BabaBooey

+0

मैं भूल गया कि लक्ष्य पीसी कॉम्पैक्ट फ्लैश का उपयोग कर रहा है। पेजिंग के लिए फ्लैश का उपयोग करने की अनुशंसा नहीं की जाती है, इसलिए मैंने पूरी तरह से पेजिंग बंद कर दी है। – BabaBooey

संबंधित मुद्दे