2011-11-14 12 views
5

विंडोज 7 विंडो मैनेजर नियमित रूप से मेरे डब्ल्यूपीएफ ऐप को hung के रूप में पहचानता है, भूत करता है और संदेश का जवाब नहीं देता है। मैं कई हफ्तों के लिए ऐप का उपयोग कर रहा हूं और इसे नहीं देखा है, लेकिन एक ही हार्डवेयर वाला उपयोगकर्ता जो कहता है कि वह नियमित रूप से इसे प्राप्त करता है।विंडोज़ ऐप को लटकने पर एक स्टैक ट्रेस लॉग करें

जो भी हो सकता है वह किसी अन्य थ्रेड पर किसी कार्य में चलाया जा सकता है, इसलिए मुझे यकीन नहीं है कि इस मुद्दे को कहां से शुरू करना है। यदि उपयोगकर्ता प्रतिक्रिया देने के लिए एप्लिकेशन की प्रतीक्षा करता है तो यह जल्दी से ठीक हो जाता है, इसलिए मुझे लगता है कि यह मुद्दा GUI थ्रेड पर कुछ है जो कभी-कभी चलाने के लिए केवल 5 सेकंड से अधिक समय लेता है।

क्या कोई तरीका है जब मैं डीडब्लूएम सोचता हूं कि ऐप लटका हुआ है तो मैं एक स्टैक ट्रेस लॉग कर सकता हूं?

उत्तर

1

मैंने इसे एक WPF ऐप में नहीं किया है, लेकिन परंपरागत तरीका से SendMessageTimeout का उपयोग करके पृष्ठभूमि पृष्ठभूमि से WM_NULL संदेश भेजना होगा, और यदि मुख्य UI थ्रेड संसाधित नहीं करता है संदेश, 30 सेकंड में, उस थ्रेड के लिए एक स्टैक डंप उत्पन्न करें।

1

एक दृष्टिकोण System.Diagnostics नामस्थान का उपयोग कर अपने प्रोग्राम का एक निशान लिखना है। इसके साथ आप यह पता लगा सकते हैं कि आपके प्रोग्राम को लटकने से पहले आखिरी कार्रवाई क्या थी। जब आप विंडोज़ को लटकाते हैं तो आप शायद ही कभी एक प्रोग्राम का निरीक्षण करेंगे। :-(

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