Я готовлюсь написать клиентское приложение WPF, которое использует промежуточное программное обеспечение ICE (Internet Communication Engine). ICE требует правильной инициализации и финализации. Все примеры показывают, как это сделать в обычном консольном приложении - это легко, потому что вам нужен только блок try-finally и некоторые вещи в нем.
А как насчет WPF? Как я могу быть уверен, что какой-то код будет называться независимо от того, что произойдет, чтобы завершить приложение?