我有一个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.
我知道在here.
之前已经提出过这类问题但是,通过将我的Assembly.cs
更改为 -
[assembly: AssemblyVersion("2.0.0")]
[assembly: AssemblyFileVersion("2.0.0")]
我想也许,如果我在事件中找到Window closed
事件并推送类似于Process.GetCurrentProcess().Kill();
的内容,那么当用户从红色'x'
按钮关闭应用程序时表格的右上角可能会杀死这个过程?
答案 0 :(得分:47)
因此,在您关闭它之后,您的过程仍然存在。这通常意味着你有一个让它保持活力的线程。这是你如何追踪它。
首先,在调试器中附加它:
现在打开线程列表:
双击您在此处看到的每个主题:
你将被视为线程目前正在做的事情:
那就是阻止应用程序关闭的原因。必须退出该循环才能退出应用(或者,将Thread.IsBackground
设置为true
)。
答案 1 :(得分:10)
Environment.Exit(0);
Terminates this process and gives the underlying operating system the specified exit code.
成功完成后返回0。