У нас есть SmartClient встроенный в C #, который stubornly остается открытым, когда компьютер работает на его перегружается. Это останавливает процесс перезапуска, если пользователь сначала не закроет SmartClient или не произойдет другое ручное вмешательство.
Это вызывает проблемы, когда команда инфраструктуры удаленно устанавливает новое программное обеспечение, требующее перезагрузки компьютера.
Есть идеи, как заставить приложение SmartClient распознать событие завершения работы / перезапуска из Windows и изящно убить себя?
UPDATE:
Это высокопоточное приложение с несколькими потоками графического интерфейса. да, несколько потоков графического интерфейса. Это действительно консолидация многих проектов, которые сами по себе могут быть автономными приложениями - все они запускаются и управляются из одного exe-файла, который централизует эти методы управления и отслеживает эти потоки. Я не верю, что использование фоновых потоков является опцией.