Представьте, у нас есть два приложения .net. Приложение «A» запускает приложение «B» с использованием класса System.Diagnostics.Process
. Затем «А» хочет убить «В» методом Process.Kill
. Как «B» может определить, что кто-то его убивает?Как определить, убить приложение
ответ
Я не думаю, что приложение может реагировать на убийство ... Я думаю, что он работает больше на уровне ОС, например, при использовании диспетчера задач.
Использование Process.Kill() может быть неправильным в этом контексте, можете ли вы предоставить дополнительную информацию о проблеме, которую вы пытаетесь решить?
Да, я обнаружил, что «процесс не может помешать себе прекратить». Думаю, у нас нет возможности это определить. http://msdn.microsoft.com/en-us/library/ms686714(VS.85).aspx – alga
Может быть, вы могли бы попробовать это таким образом в рамках кода Process Б ...
// We're in Process B.... System.Diagnostics.Process proc = System.Diagnostics.Process.GetCurrentProcess(); proc.EnableRaisingEvents = true; proc.Exited += new EventHandler(proc_Exited); static void proc_Exited(object sender, EventArgs e) { // Handle here that we got killed... }
Я не могу с уверенностью сказать, что это будет работать ... сама природа ОС, которая посылает «Kill» в процесс зависит от реализации, и, таким образом, нет гарантированного надежного способа процесса B, зная, что он убит. Поскольку вы не указали явно, если процесс B является управляемым/неуправляемым процессом, я сделаю основу предположения, что он действительно управляется как тег «.net», если это приложение WinForm, возможно, событие Closing
в winForms буду иметь причину в аргументе обработчика события или использовать ApplicationDomain экземпляр, как показано ниже:
AppDomain thisDom = AppDomain.CurrentDomain; thisDom.ProcessExit += new EventHandler(thisDom_ProcessExit); // static void thisDom_ProcessExit(object sender, EventArgs e) { // Handle the situation here where the AppDomain is going to be unloaded and killed! }
Надеется, что это помогает, с наилучшими пожеланиями, Том.
- 1. Как убить мобильное приложение?
- 2. Android. Как убить приложение?
- 3. Убить приложение
- 4. Как убить приложение для Android
- 5. Как убить приложение android onButtonClick
- 6. Как убить другое приложение Android
- 7. Убить приложение в Android
- 8. убить приложение, когда флажок
- 9. убить приложение после сбоя
- 10. убить приложение в Iphone
- 11. Попытка убить мое приложение
- 12. Я хочу убить приложение, но мое приложение приостановит условие. как я могу убить приложение?
- 13. Чтобы убить конкретное приложение Java
- 14. андроид гибернации убить приложение - OnDestroy
- 15. Как убить чат-голова, как приложение, другое приложение программно?
- 16. Убить мое приложение после завершения
- 17. Убить приложение в определенное время
- 18. Как убить приложение Android из диспетчера задач?
- 19. Как убить приложение со всеми его действиями?
- 20. Как узнать, когда мое приложение собирается убить
- 21. Как я могу свернуть/убить запущенное приложение
- 22. Как убить приложение Windows с помощью TideSDK?
- 23. Как убить мое приложение в Android?
- 24. iPhone: как убить фоновое приложение с трамплина?
- 25. Как убить 3-е-приложение программно?
- 26. Как убить приложение Android в фоновом режиме
- 27. Убить приложение для Android Android
- 28. Должен ли класс убить приложение?
- 29. Не удалось убить запущенное приложение
- 30. Не удается убить приложение NodeJS
дубликат http://stackoverflow.com/questions/1372250/how-to-detect-a-kill-process-event –