我正试图正确关闭我的应用程序。我的应用程序使用数据绑定,多次访问数据库,并可能运行一些内在的威胁。
由于在这种情况下
-
现在,假设我的应用程序只有在出现问题时才会关闭。这意味着应用程序不必完成任何操作,只需原始关闭,以便用户可以重新启动应用程序。我是否正确地说,我必须将
由于在这种情况下
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.在布局和呈现完成后但在处理输入优先级项目之前处理操作。具体来说,这是在引发“加载”事件时使用的。
- Render
- 枚举值为7.与呈现具有相同优先级的操作处理。
- DataBind
- 枚举值为8.与数据绑定具有相同优先级的操作处理。
- Normal
- 枚举值为9.以正常优先级处理操作。这是典型的应用程序优先级。
- Send
- 枚举值为10.在其他异步操作之前处理操作。这是最高优先级。现在,假设我的应用程序只有在出现问题时才会关闭。这意味着应用程序不必完成任何操作,只需原始关闭,以便用户可以重新启动应用程序。我是否正确地说,我必须将
Inactive
作为参数给出?如果我将Send
作为参数给出,是否所有内容都在完全关闭之前完成?
isBackground
吗?没有其他方法吗? - Joetjah