Позвольте мне дать вам фон.
У нас есть приложение (среднего размера), которое использует MessageBox.Show(....) в разных местах (сотнями).
Эти окна сообщений являются частью рабочего процесса и используются для информирования, предупреждения или получения информации от пользователя. Приложение должно автоматически выходить из системы по истечении определенного времени, если нет активности. У нас есть требование, чтобы при выходе из приложения просто очистить данные сеанса, очистить представления и спрятать себя, чтобы при следующем запуске не пришлось выполнять процесс запуска, который является дорогостоящим с точки зрения времени.
Все работает нормально, но в сценарии, когда на экране есть какое-то окно сообщения, и пользователь покинул машину, не отвечая на окно сообщения, а затем из-за отсутствия активности, чтобы заставить приложение выйти из системы. Проблема в том, что окно сообщения не исчезнет.
Как я могу закрыть открытое окно сообщения, если оно есть, скрывая приложение?