标签: close-application

关闭WPF GUI应用程序的正确方法:GetCurrentProcess().Kill(),Environment.Exit(0)或this.Shutdown()

我的基于GUI桌面的WPF 4.0(C#.Net 4.0)程序适用于SQL Server数据库.每次运行我的应用程序时,它都会通过ADO.NET Entity Framework创建与SQL Server的连接,如果SQL Server无法访问,则会抛出异常并显示MessageBox通知.

现在我希望在用户阅读此消息后,应用程序将关闭.我找到了三种方法:

Process.GetCurrentProcess().Kill();
Run Code Online (Sandbox Code Playgroud)

要么

this.Shutdown(); // Application.Current.Shutdown()
Run Code Online (Sandbox Code Playgroud)

要么

System.Environment.Exit(0);
Run Code Online (Sandbox Code Playgroud)

所有这些都可以正常工作并完成我需要的工作 - 在Windows任务管理器中关闭应用程序并终止应用程序的进程.

我想知道:

  1. 他们之间有什么区别?
  2. 哪种方式可以更快地关闭我的申请?
  3. 我应该使用哪种方式关闭应用程序?
  4. Application.Current.Shutdown()this.Shutdown()以同样的方式来关闭应用?

或者可能还有另一种更合适的方法来关闭WPF GUI应用程序?

Application.Exit() 因为我收到错误,对我不起作用:

事件' System.Windows.Application.Exit'只能出现在+ =或 - =的左侧

谢谢.

c# database wpf exception-handling close-application

49
推荐指数
1
解决办法
6万
查看次数

Android:当我从最近的应用按钮关闭应用时,不会调用OnDestroy

当我们按下这个按钮

我们看到我们没有关闭的应用,就像这样

但是当我们想要从这个屏幕关闭一个应用程序(图片下方)时,不会调用onDestroy()方法,但应用程序已关闭.当应用程序以这种方式关闭时,我需要调用onDestroy().我怎样才能做到这一点?

java android ondestroy close-application

20
推荐指数
1
解决办法
8464
查看次数

如何完全关闭Android应用程序

我创建了一个带有注销选项的android应用程序onCreateOptionsMenu.Logout工作正常,但是当我再次按下后退按钮时,它会将我带到上一个活动,当它获得空值时,它会重定向到登录屏幕.现在我的登录屏幕一次又一次出现.当我按下后退按钮但我不知道如何完全关闭应用程序.

这是我在登录屏幕中处理后退按钮的代码:

@Override
public void onBackPressed() {
    new AlertDialog.Builder(this)
        .setTitle("BidNEMO")
        .setMessage("Are you sure you want to exit?")
        .setNegativeButton(android.R.string.no, null)
        .setPositiveButton(android.R.string.yes, new OnClickListener() {
         public void onClick(DialogInterface arg0, int arg1) {
         Main.super.onBackPressed();
         finish();
         }
         }).create().show();
     }
Run Code Online (Sandbox Code Playgroud)

请帮帮你..

android back-button back-button-control close-application

16
推荐指数
5
解决办法
3万
查看次数

以编程方式关闭C#WPF应用程序的首选方法是什么?

哪个是关闭C#WPF应用程序的首选方法?

1)在主窗口中调用Window.Close()

2)在主窗口中调用Application.Current.Shutdown(0).

这两个在语义上是等价的还是我需要注意的微妙区别?

c# wpf close-application

8
推荐指数
1
解决办法
6347
查看次数

卸载时关闭应用程序 - wix

我正在使用Wix 3.6.我有一个问题,卸载如果任何窗口打开并显示在任务栏中(此窗口是我的msi的一部分,我正在尝试卸载),它会显示一个对话框,要求用户关闭该应用程序("在继续安装之前应关闭以下应用程序").

我试过以下,但没有运气.

<InstallExecuteSequence>
       <Custom Action="WixCloseApplications"
                Before="InstallInitialize">Installed</Custom>
       <Custom Action="StartMonitor"
                After="StartServices">NOT Installed</Custom>
    </InstallExecuteSequence>

   <util:CloseApplication Id="CloseMonitor" Target="Monitor.exe"
                           CloseMessage="yes" RebootPrompt="no">
        Installed
    </util:CloseApplication>
Run Code Online (Sandbox Code Playgroud)

我希望wix检测应用程序并在卸载过程中关闭它们.无需显示对话框提示.任何人都可以帮我实现它.

它工作正常,它是从命令提示符安装/ qn开关但没有/ qn开关我得到对话框("应继续安装前应关闭以下应用程序").有人可以帮我解决这个问题.

wix close-application

8
推荐指数
1
解决办法
4577
查看次数

Wix 的 util:CloseApplication 扩展似乎不起作用

我正在尝试在使用 Wix 卸载之前关闭进程。我已经确认只要有一个可见的窗口它就可以工作,但是如果没有一个可见的窗口(这个应用程序大部分时间都是这种情况,因为它是一个系统托盘应用程序),卸载程序就会挂起,并且最终继续卸载,让进程继续运行。

根据此论坛帖子,Wix 过去似乎在关闭最小化应用程序时遇到问题,所以我想知道这是否相关?

关于我还能做些什么来确保进程关闭的任何建议?有什么办法可以尝试使用 Win32 api 在我的应用程序中捕获消息吗?

这是 CloseApplication 声明:

<util:CloseApplication Id="CloseApp" CloseMessage="yes" Target="App.exe" RebootPrompt="yes" />
Run Code Online (Sandbox Code Playgroud)

这是自定义操作:

<Custom Before="InstallInitialize" Action="WixCloseApplications">REMOVE = "ALL"</Custom>
Run Code Online (Sandbox Code Playgroud)

wix close-application

6
推荐指数
1
解决办法
9456
查看次数

是否有可能以编程方式关闭在android中运行的应用程序?

我想停止或关闭在android中运行在后台的应用程序.可能吗?如果是这样,如何实现这一点.请参阅任何链接将不胜感激.

提前致谢..

android background-process close-application

-1
推荐指数
1
解决办法
1万
查看次数