Miałem usługę tworzenia kopii zapasowych online (której nie mogę polecić), kupiłem dysk Seagate i zamiast tego pobrałem Seagate Dashboard, aby wykonać zadanie. Po dwóch dniach tworzenia pierwszej kopii zapasowej i wciąż nad nią pracuję, pojawia się typowy komunikat systemu Windows, który mówi coś w stylu „Dashboard przestał działać” i daje mi opcje zamknięcia programu lub szukania (kogoś?) rozwiązanie, a następnie zamknij program. Głosowałem za jego zamknięciem, ponieważ nie ufam Windowsowi, że przeszukałby dla mnie takie rzeczy.
Chodzi o to, że program Dashboard nie został zatrzymany. Kontynuuje zwiększanie prędkości procesora i połączenia bezprzewodowego, i tak dalej, jak miało to miejsce w ciągu ostatnich dwóch dni, i nadal zwiększa liczbę „procent ukończenia” w tym samym tempie lodowcowym (nie narzekam, wiem, że to wymaga długi czas - po prostu mówiąc, że to nie zmieniło jego zachowania).
Ale najwyraźniej wiadomość nie oznaczała tego, co myślałem, że oznaczało - że wykryło, że proces ten jakoś się zakończył. Co to znaczy? Z zawodu jestem programistą, więc mogę znieść rozsądne wyjaśnienia techniczne ...
Odpowiedzi:
Windows Vista i nowsze wersje domyślnie implementują sprawdzanie responsywności aplikacji opartych na interfejsie użytkownika .
Może to oznaczać, że aplikacja jest oznaczona jako „Nie odpowiada”, gdy znajduje się na pierwszym planie (pasek zadań) lub gdy jej okno jest aktywne (okno dialogowe).
Gdy aplikacja nie odpowiada, a system operacyjny może wywnioskować, że awaria jest związana z wyjątkiem w module potomnym, którego sama aplikacja nie jest świadoma, system Windows wie, że aplikacja nie może wyświetlić własnego komunikatu o błędzie, zapisać w dzienniku zdarzeń systemu, i utwórz raport o awarii, system Windows wyświetli okno dialogowe wskazujące, że proces „przestał działać”. Różni się to nieco od awarii aplikacji, ponieważ stos głównego pliku wykonywalnego sam się nie zawiesił; jednak generalnie czeka na odpowiedź modułu potomnego, która nigdy nie nadejdzie. Dziennik zdarzeń często zawiera informacje o wyjątku dziecka.
Aplikacja jest uważana za niereagującą, gdy interfejs API systemu Windows nie może wykryć, że okno interfejsu użytkownika weszło w miejsce, w którym użytkownik może nim manipulować w pewnym momencie. W języku C # możesz sprawdzić status systemu Windows, aby sprawdzić jego reakcję na połączenie
Process.Responding()
. Ta metoda zwraca false (lub zgłosi wyjątek, jeśli MainWindowHandle nie istnieje) lub true, jeśli okno jest w stanie bezczynności i oczekuje na dane wejściowe.Są przypadki, w których program nieodpowiadający wykonuje wiele pracy, dokładnie tak, jak powinien, więc brak odpowiedzi nie zawsze wskazuje na awarię (po prostu zły kod). Okno pulpitu może ostatecznie stać się responsywne. „Przestał działać” dialogowe jednak zazwyczaj nie wskazują na trwałą niewydolność, a aplikacja będzie musiała zostać przerwana. Nie jest to w 100% prawdziwe przez cały czas, ale najczęściej tak jest.
Charakter tych komunikatów i związane z nimi problemy są nierozerwalnie związane z technikami programowania stosowanymi do wykonywania pracy oraz integracji z zewnętrznymi komponentami i usługami, takimi jak zewnętrzne interfejsy API. Microsoft opublikował kilka dobrych informacji o tym, co robić, a czego nie robić, aby opracować responsywny projekt interfejsu użytkownika . Słabe strategie wątkowania, synchroniczny i asynchroniczny dostęp do komponentów zewnętrznych oraz rywalizacja o zasoby (blokady / zakleszczenia) są częstymi przyczynami.
Dla użytkowników końcowych cierpiących na problemy z aplikacjami, które „przestały działać” Microsoft zaleca obszerną ścieżkę rozwiązywania problemów, którą można znaleźć tutaj: http://support.microsoft.com/kb/2694911 Sterownik karty graficznej jest często odpowiedzialny za problemy z Draw () pętli, a zatem może powodować brak reakcji, podobnie jak systemowe interfejsy API. sprawdzenie instalacji sterownika i sprawdzenie, czy sam system operacyjny jest zintegrowany (z SFC.exe), są warte podjęcia kroków w celu ustalenia, czy aplikacja ściśle integruje się z systemem, zgodnie z oczekiwaniami. Sprzęt, taki jak karta graficzna i pamięć RAM, również musi działać poprawnie.
Mam nadzieję że to pomogło
źródło