2013-04-28 11 views
5

Pytanie: Czy istnieją jakieś sposoby rejestrowania lub określania, gdzie występują zakleszczenia w aplikacji dostarczonej klientowi (prawdopodobnie poprzez włączenie niektórych flag w procesie budowania)?Radzenie sobie z zawieszaniem aplikacji/zakleszczeniami w języku C#

Tło: Zazwyczaj, gdy testuję kod i pojawia się zakleszczenie, uruchamiam program Visual Studio, więc mogę rozpocząć debugowanie wszystkich i znaleźć, który wątek czeka i gdzie, i od razu wiem, na czym polega problem. Istnieje jednak pewien problem, który powoduje, że moja aplikacja bardzo rzadko zamarza (nie jest wykryta w testach jednostkowych lub integracyjnych). Zdarza się to na komputerze klienta, na którym działa tylko plik wykonywalny. Chciałbym wiedzieć, czy istnieją jakieś funkcje, które mogę włączyć, które mogą pomóc w zgłaszaniu tych problemów, ponieważ trudno jest powiedzieć, czy byłby to problem bez debuggera.

Odpowiedz

4

Możesz pobrać klienta do utworzenia minizrzutu z TaskManager lub Process Explorer. Aby uzyskać więcej informacji, patrz this article.

+0

Cool. Nigdy wcześniej o tym nie wiedziałem. Wydaje się, że jest to pełna nadziei, ale kiedy program zawiesza się, cały komputer się zawiesza (jak w myszy nawet się nie porusza), więc nie mogą dostać się do TaskManager. Chyba że Ctrl + Alt + Delete nadal działa, co nie wydaje mi się, że próbowaliśmy. –

Powiązane problemy