Единственный раз, когда я сталкиваюсь с такой проблемой, это когда в основной форме у меня был пользовательский обработчик события FormClosing
, который выполнял логику и отменял событие.
EDIT:
Я столкнулся с другим случаем, и, основываясь на ваших комментариях, он, возможно, отражает то, что вы испытывали.
Когда я запускал одноэкземплярное приложение, используя Mutex, я звонил Application.Restart()
из довольно встроенного местоположения, которое требовало много времени для очистки. Таким образом, кажется, что перезапуск запускал новый экземпляр до того, как предыдущий был завершен, поэтому Mutex препятствовал запуску нового экземпляра.