据我了解,未完成并返回 0 错误代码的应用程序未正确终止。但不知何故,我制作的任何 UWP 应用程序,即使是非常默认的应用程序,每次都以错误代码 1 结束。此外,它的主类Dispose()和析构函数永远不会被调用。这是预期的行为吗?
为了重现,我刚刚制作了默认的 UWP 应用程序:
如果您现在运行然后关闭该应用程序,它似乎正在被强制退出。我得到的最后输出是:
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).
Run Code Online (Sandbox Code Playgroud)
所以我认为这意味着一个线程失败,然后应用程序失败。这是正确的,这是坏的吗?
此外,我在 main 中添加了以下代码App.xaml.cs:
~App()
{
System.Diagnostics.Debug.WriteLine("Calling destructor");
}
// (Implement Disposable interface)
public void Dispose()
{
System.Diagnostics.Debug.WriteLine("Calling dispose");
}
Run Code Online (Sandbox Code Playgroud)
两者都没有被调用。这是怎么回事?
线程或应用程序都没有以退出代码关闭。因此,您遇到的情况是不正常的,并且被认为是一个问题,特别是当线程终止整个应用程序时。我会卸载 VS17 和所有库,然后进行全新安装。
您是否尝试过非 UWP 项目模板?
| 归档时间: |
|
| 查看次数: |
344 次 |
| 最近记录: |