13

我有一个 WPF 应用程序,关闭应用程序后,它的进程app.exe *32仍在任务管理器的进程列表中运行。

我需要关闭它,因为当我对我的代码进行编辑时,我收到以下错误 -

Unable to copy file "obj\x86\Release\frontEndTest.exe" to "bin\Release\app.exe". The process cannot access the file 'bin\Release\app.exe' because it is being used by another process.

我知道在此之前已经提出过此类问题

Assembly.cs但是,通过将我的更改为 -该解决方案对我不起作用

[assembly: AssemblyVersion("2.0.0")]
[assembly: AssemblyFileVersion("2.0.0")]

我想也许如果我要找到Window closed事件并放置类似的东西 -Process.GetCurrentProcess().Kill();在事件中,当用户从'x'表单右上角的红色按钮关闭应用程序时,这可能会终止进程?

4

2 回答 2

47

因此,您的进程在关闭后仍然存在。这通常意味着你有一个线程让它保持活力。这是您可以追踪它的方法。

首先,在调试器中附加它:

                                在此处输入图像描述

在此处输入图像描述

                                        在此处输入图像描述

现在打开线程列表:

        在此处输入图像描述

双击您在此处看到的每个线程:

在此处输入图像描述

你会被带到线程当前正在做什么:

                                在此处输入图像描述

这就是阻止应用程序关闭的原因。必须退出该循环才能使应用程序退出(或者,设置Thread.IsBackgroundtrue)。

于 2012-06-20T11:40:24.747 回答
10

Environment.Exit(0);

Terminates this process and gives the underlying operating system the specified exit code.    

成功完成后返回 0。

于 2012-06-20T09:59:01.713 回答