c# - UWP 应用程序始终以非零返回码退出
问题描述
据我了解,未完成并返回 0 错误代码的应用程序未正确终止。但不知何故,我制作的任何 UWP 应用程序,即使是非常默认的应用程序,每次都以错误代码 1 结束。此外,它的主类Dispose()
和析构函数永远不会被调用。这是预期的行为吗?
为了重现,我刚刚制作了默认的 UWP 应用:
- 右键单击解决方案 -> 添加 -> 新建项目...
- 然后在其他语言 -> Visual C# -> Windows Universal -> "Blank App (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).
所以我认为这意味着线程失败,然后应用程序失败。这是正确的,这很糟糕吗?
此外,我在 main 中添加了以下代码App.xaml.cs
:
~App()
{
System.Diagnostics.Debug.WriteLine("Calling destructor");
}
// (Implement Disposable interface)
public void Dispose()
{
System.Diagnostics.Debug.WriteLine("Calling dispose");
}
两者都没有被调用。这是怎么回事?
解决方案
我想建议您使用 UWP生命周期和事件。据我了解,用户关闭应用程序时会进入挂起模式,然后终止。UWP 应用程序生命周期经历了一系列步骤,其中它甚至在启动或挂起时进入和离开后台。在App.Xaml.Cs 中,您可以继续玩任何事件并了解应用程序生命周期的工作方式。
推荐阅读
- javascript - javascript:如何显示格式化的时间戳 wrt UTC timezome
- excel - Excel 复制(目标:=)在 VB.NET 中失败
- processing - 在处理中仅按红色值过滤
- asp.net - 来自 Visual Studio 调试的 localhost 的 ERR_SSL_PROTOCOL_ERROR
- azure-devops - 发布结果页面上的扩展点
- c# - EF Core ViewModel 构造函数
- flutter - 颤动的可滑动水龙头
- node.js - 使用 Node 运行简单的演示示例 google-maps-services-js 时出现问题
- python - django中的delendent下拉菜单(DJango,Python)
- python-3.x - 当在 Python 中上传一个充满关键字的 csv 文件时,有没有办法从谷歌搜索结果中获取 url?