W tej chwili używam Process.Kill(), aby zabić proces. Czy jest jakiś sposób, zamiast natychmiast zabić go, że mogę wysłać wiadomość do procesu, nakazującą jej zamknięcie, aby mogła z gracją wyczyścić i zamknąć system. Zasadniczo szukam odpowiednika po prostu kliknięciu czerwonego X w prawym górnym rogu, co, jak sądzę, spowoduje wysłanie wiadomości do aplikacji z prośbą o zamknięcie."Z wdziękiem" zabijanie procesu
16
A
Odpowiedz
25
Jeśli proces ma interfejs Windows (tak jak odnosić się do czerwonego "X"), możesz spróbować Process.CloseMainWindow()
. Jeśli się nie powiedzie, możesz zmienić stan na Process.Kill()
.
1
To zależy od procesu, który zabijasz. Jak podano na odpowiedniej stronie dla Process.Kill
, "Kill jest jedynym sposobem na zakończenie procesów, które nie mają graficznych interfejsów." Jeśli istnieje okno graficzne, przejdź do odpowiedzi przez lc powyżej; Process.CloseMainWindow
działa jak czerwony X, do którego się odwołałeś.
2
Zabijanie nie może być pełne wdzięku, być może możesz zasygnalizować proces popełnienia samobójstwa. Do sygnalizowania masz wiele opcji.
- SendMessage
- NamedPipes
- Nazwany Mutex
- Gniazdka
Powiązane problemy
- 1. Zabijanie procesu poprzez sshj
- 2. C#: proces zamykania procesu "zabijanie procesu" (z zadaniem)
- 3. Zabijanie procesu podłączonego do portu erlanga
- 4. Zabijanie podproces tym jego dzieci z pytona
- 5. Jak z wdziękiem zatrzymać proces java?
- 6. Capistrano zabijanie aktywa: prekompilacji
- 7. uWSGI i wdzięcznie zabijanie wielowątkowej aplikacji Flask
- 8. Kończenie nici z wdziękiem nie używając TerminateThread()
- 9. Kończenie QThread z wdziękiem przy odrzucie QDialog()
- 10. Jak nieinteraktywnie zakończyć RStudio z wdziękiem
- 11. Z wdziękiem zatrzymuje się w Powershell
- 12. Jak zatrzymać i uruchomić TGitCache.exe z wdziękiem
- 13. Jak z wdziękiem zakończyć proces utworzony ze scala
- 14. Pobranie procesu z danym uchwytem procesu
- 15. Wdziękiem degradujący marynowanie w Pythonie
- 16. Emacs, zabijanie procesów wewnętrznych, dowolne polecenie?
- 17. zabijanie elementów w kolejce dispatch_async w iOS
- 18. Jak mogę z wdziękiem poradzić sobie z awarią Kafki?
- 19. Delphi XE8 z wdziękiem obsługuje ETetheringException przy starcie aplikacji
- 20. Dlaczego ... dla porażki z wdziękiem, ale dla ... rzucenia wyjątku?
- 21. Jak sprawić, aby wątek blokujący recv() wyjdzie z wdziękiem?
- 22. Z wdziękiem degradując element niestandardowy (lub element polimerowy)
- 23. Czy istnieje sposób, aby z wdziękiem zmienić szyny secret_key_base?
- 24. Jak z pełnym wdziękiem odzyskać od błędu COM?
- 25. AWS S3 z wdziękiem obsługuje 403 po wygaśnięciu getSignedUrl
- 26. Jak z wdziękiem obsługiwać pliki przekraczające "post_max_size" PHP?
- 27. Jak zawodzić z wdziękiem, jeśli .NET nie jest zainstalowany?
- 28. Jak zabezpieczyć pracę hadoop z wdziękiem/przechwycić `hadoop job -kill`
- 29. Pobierz "Wiersz poleceń" procesu i argumenty z obiektu procesu?
- 30. Czy istnieje sposób, aby dowiedzieć się, który użytkownik jest właścicielem procesu z procesu task_struct procesu?
ten został poproszony, i odpowiedź została tutaj przyjętych: http://stackoverflow.com/questions/2055753/ how-to-gracefully-endate-a-process – David
@David Stratton Good find i tak, idea jest taka sama, ale to pytanie jest szczególnie pytające o kod zarządzany (zobacz tagi [C#] and [.net]), który istnieje jeszcze nie odpowiedź na drugie pytanie –
@David Stratton - To pytanie dotyczy zgrabnego zamykania za pomocą kodu zarządzanego z C#, link, który umieszczasz, dotyczy win32, a odpowiedzi wymagają pInvokes. Nie to samo w ogóle. – Oded