2011-11-14 21 views
5

Windows 7 pencere yöneticisi, WPF uygulamanızı düzenli olarak hung olarak algıladı, hayaletler ve yanıt vermiyor. Uygulamayı birkaç hafta boyunca kullanıyorum ve görmedim ama aynı donanımı olan bir kullanıcı düzenli olarak aldığını söylüyor.Windows uygulama askıda kaldığında yığın izleme günlüğü kaydetme

Her şey başka bir iş parçacığı üzerinde bir görevde çalıştırılabilir, bu yüzden sorunu aramaya nereden başlayacağımı bilmiyorum. Kullanıcı uygulamanın yanıt vermesini beklerse, hızlı bir şekilde kurtarır, bu yüzden, sorunun, çalıştırılmak üzere yalnızca 5 saniyeden fazla sürdüğü GUI iş parçacığı üzerinde bir şey olduğunu varsayardım.

DWM uygulamanın askıda kaldığını düşündüğünde algılayabileceğim herhangi bir yol var mı?

cevap

1

Bunu bir WPF uygulamasında yapmadım, ancak geleneksel yol, her zaman sık sık SendMessageTimeout kullanarak bir arka plan iş parçacığından bir WM_NULL iletisi göndermek olacaktır ve ana UI iş parçacığı işlenmiyorsa ileti, 30 saniye içinde, bu iş parçacığı için bir yığın dökümü oluşturur.

1

Bir yaklaşım, programınızın izini System.Diagnostics ad alanı kullanarak yazmaktır. Bununla, programın kapanmadan önce son eylemin ne olduğunu öğrenebilirsiniz. Windows bir programı asılmış olarak algıladığında bir programı zorlukla denetleyemezsiniz. :-(

İlgili konular