Приложение. Отображает модальный диалог. Тут возникает срочное событие в другом потоке, которому надо показать другой модальный диалог.
Как тут быть?
1. Показать его модальным по отношению к уже работающему модальному.
Проблема: работающее модальное окно может закрыться само по таймеру, например, это может быть окно с прогрессбаром без кнопок. Тогда оно сделает доступным своего родителя, а наш новый диалог останется как бы ни при чём.
2. Подождать, пока не закроется модальный диалог.
Проблема: а если событие очень срочное?
3. Показать в другом потоке.
Проблема: как определить, что этот диалог относится к нашему приложению? Ведь экземпляров может быть несколько.
Проблема: если приложение — многопоточное SDI, то при закрытии главного окна этот диалог останется на экране уже будучи неактуальным.
Какие могут быть еще варианты, или решения этих проблем? Может на других платформах реализованы какие-нибудь элегантные решения?