wpf 申请流程不会关闭

inn6fuwd  于 6个月前  发布在  其他
关注(0)|答案(3)|浏览(71)

我有一个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'按钮关闭应用程序时,这可能会杀死进程?

hs1rzwqc

hs1rzwqc1#

所以你的进程在你关闭后仍然是活的。这通常意味着你有一个线程来保持它的活动。下面是你如何跟踪它。
首先,在调试器中附加到它:


的数据




现在打开线程列表:



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

然后你会看到线程当前正在做什么:

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

mi7gmzs6

mi7gmzs62#

环境.退出(0);

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

字符串
成功完成后返回0。

yc0p9oo0

yc0p9oo03#

如果你在2023年使用Visual Studio进行开发,你可以可视化线程/任务:
1.明智地选择一些断点,这些断点将引导您完成应用程序的 Package
1.开始调试
1.选择“Windows”>“并行堆栈”这很好地显示了哪些任务(仍)在运行
1.现在逐步执行代码,看看您在哪里遇到了问题。

相关问题