Насколько я понимаю, приложение, которое не завершает работу и возвращает код ошибки 0, не завершилось правильно. Тем не менее, любое приложение UWP, которое я создаю, даже само по умолчанию, заканчивается кодом ошибки 1 каждый раз. Более того, его главный класс Dispose()
и деструктор никогда не называются. Это ожидаемое поведение?
Чтобы воспроизвести, я просто создал приложение UWP по умолчанию:
- Щелкните правой кнопкой мыши Решение -> Добавить -> Новый проект ...
- Затем в Другие языки -> Visual C # -> Windows Universal -> «Пустое приложение (Universal Windows)»
- Затем создайте и разверните приложение.
Если вы сейчас запустите, а затем закроете приложение, кажется, что оно принудительно завершается. Последний вывод, который я получаю:
The thread 0x35a4 has exited with code 0 (0x0).
The thread 0x34f4 has exited with code 1 (0x1).
The program '[3376] App1.exe' has exited with code 1 (0x1).
Итак, я понимаю, что это означает, что поток завершается с ошибкой, а затем происходит сбой приложения Это правильно, и это плохо?
Более того, я добавил следующий код к основной App.xaml.cs
:
~App()
{
System.Diagnostics.Debug.WriteLine("Calling destructor");
}
// (Implement Disposable interface)
public void Dispose()
{
System.Diagnostics.Debug.WriteLine("Calling dispose");
}
Никто никогда не называется. Что происходит?