我正在尝试正确关闭我的应用程序。我的应用程序使用数据绑定,多次访问数据库,并且可能还运行了一些先天威胁。
由于Application.Current.Shutdown()
在这种情况下不会关闭所有内容,因此我查看了Application.Current.Dispatcher.BeginInvokeShutdown()
.
BeginInvokeShutdown()
需要一个System.Windows.Threading.DispatcherPriority
论据。这可以是:
Invalid
- 枚举值为-1。这是无效的优先级。Inactive
- 枚举值为 0。不处理操作。SystemIdle
- 枚举值为1。系统空闲时处理操作。ApplicationIdle
- 枚举值为2。在应用程序空闲时处理操作。ContextIdle
- 枚举值为3。在后台操作完成后处理操作。Background
- 枚举值为4。在所有其他非空闲操作完成后处理操作。Input
- 枚举值为 5。操作的处理优先级与输入相同。Loaded
- 枚举值为 6。在布局和渲染完成时处理操作,但就在输入优先级的项目被服务之前。具体来说,这在引发 Loaded 事件时使用。Render
- 枚举值为 7。操作处理的优先级与渲染相同。DataBind
- 枚举值为8。操作的处理优先级与数据绑定相同。Normal
- 枚举值为 9。操作以正常优先级处理。这是典型的应用程序优先级。Send
- 枚举值为10。操作在其他异步操作之前处理。这是最高优先级。
现在,假设我的应用程序只有在出现问题时才会关闭。这意味着应用程序无需完成任何操作,只需原始关闭,以便用户重新启动应用程序。我说我必须Inactive
作为论据是正确的吗?如果我Send
作为论据,一切都在完全关闭之前完成,这是真的吗?